2015-11-03 85 views
1

我有一個文本框和form1中的按鈕,當我在文本框中寫入時,可以使用我的按鈕將它保存到計算機上的文件中。這是把我的按鈕在單獨的類中的C#StreamWriter

public void button1_Click(object sender, EventArgs e) 
    { 
     string FileName = "C:\\sample\\sample.txt"; 
     System.IO.StreamWriter WriteToFile; 
     WriteToFile = new System.IO.StreamWriter(FileName); 
     WriteToFile.Write(textBox1.Text); 
     WriteToFile.Close(); 
     MessageBox.Show("Succeded, written to file"); 

內但無論如何,我想移動一切與StreamWriter的做自己的階級(1類),並從我的主要形式調用它,按鈕內。 如果我將所有內容移動到Button中並將其移動到方法內部的class1,它聲稱Textbox1不存在,顯而易見。

你有什麼提示或鏈接我應該多讀些什麼?

問候 DB

+5

通'textBox1.Text'作爲參數方法 – Backs

+2

作爲最佳實踐,我還會推薦在using語句中打開StreamWriter,或者讓使用它的類實現IDisposable接口 – martijn

回答

3

您可以在課堂上這樣做:

public class MyClass { 
    public static bool WriteToFile(string text){ 
     string FileName = "C:\\sample\\sample.txt"; 
     try { 
      using(System.IO.StreamWriter WriteToFile = new System.IO.StreamWriter(FileName)){ 
       WriteToFile.Write(text); 
       WriteToFile.Close(); 
      } 
      return true; 
     } 
     catch { 
      return false; 
     } 
    } 
} 

而在你的按鈕事件:

public void button1_Click(object sender, EventArgs e){ 
    if(MyClass.WriteToFile(textBox1.Text)) 
     MessageBox.Show("Succeded, written to file"); 
    else 
     MessageBox.Show("Failer, nothing written to file"); 
} 
+0

我會將MessageBox調用從類移到調用方法的位置。還要爲WriteToFile方法添加一些錯誤處理,並且可以選擇返回一個成功/失敗的布爾值。 –

+0

對於像這樣簡單的事情,我會讓它成爲一個靜態函數/類,所以你可以調用MyClass.WriteToFile(textBox1.Text);同樣,如已經指出的那樣,使它返回一個具有成功狀態的布爾值。 – Nyerguds

+0

Racil Hilan,謝謝你的解釋。我會將你的答案標記爲已接受。對我來說問題是我不知道如何將textBox1傳遞給我的方法。我forgott以及添加一個參數。 我也會檢查你的建議Boxstart和Nyerguds。 –