2013-01-12 85 views
2

什麼是將窗體保存爲文件的最佳方式,只需幾個文本框即可收集用戶輸入。我用這個的時刻:將多個表單輸入保存到一個文件

if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
      { 
       File.WriteAllText(saveFileDialog1.FileName, tB1.Text); 
       File.WriteAllText(saveFileDialog1.FileName, tB2.Text); 
      } 

這是罰款保存從第一個文本框輸入,但是當涉及到其他它不會保存輸入的數據。

+1

完全取決於你想如何保存它! –

+0

你想從'textbox'保存什麼文件擴展名? – spajce

+0

追加到一個文件和.dat或txt – Tom

回答

1

如果是我,因爲他們分別擁有WriteLineReadline方法,我會用StreamWriter/StreamReader類。

即是這樣的

private void button1_Click(object sender, EventArgs e) 
{ 
    if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
    { 
     using (StreamWriter sw = new StreamWriter(saveFileDialog1.FileName)) 
     { 
      sw.WriteLine(tB1.Text); 
      sw.WriteLine(tB2.Text); 
      sw.WriteLine(tB3.Text); 
      sw.WriteLine(tB4.Text); 
      sw.Close(); 
     } 

    } 

} 

private void button2_Click(object sender, EventArgs e) 
{ 
    if(openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
    { 
     using (StreamReader sr = new StreamReader(openFileDialog1.FileName)) 
     { 
      tB1.Text = sr.ReadLine(); 
      tB2.Text = sr.ReadLine(); 
      tB3.Text = sr.ReadLine(); 
      tB4.Text = sr.ReadLine(); 
      sr.Close(); 
     } 
    } 

} 
+0

謝謝你,這是我用它,它的工作!感謝大家的幫助,非常感謝 – Tom

+0

@Tom很高興能夠幫助 –

1

如何連接兩個文本框?爲了清楚起見,

string forSaving = tB1.Text + "\n" + tB2.Text; 
File.WriteAllText(saveFileDialog1.FileName, forSaving); 

File.WriteAllText(saveFileDialog1.FileName, tB1.Text + "\n" + tB2.Text); 

UPDATE 1

string firstName = "FirstName: " + txtFirstName.Text; 
string lastName = "LastName: " + txtLastName.Text; 
string personAddress = "FirstName: " + txtAddress.Text; 
string details = firstName + "\n" + lastName + "\n" + personAddress; 
File.WriteAllText(saveFileDialog1.FileName, tB1.Text + "\n" + details); 
+0

@Tom看到我的更新。 –

1

串聯這種兩個texbox然後;

File.WriteAllText(saveFileDialog1.FileName, tB1.Text + Environment.NewLine + tB2.Text); 
1

的最好辦法很可能會建立在形式的方法,將來自成任何格式你想要的文本框的所有值返回一個字符串。像這樣的東西會工作:

File.WriteAllText(saveFileDialog1.fileName, OutputUserInfo()); 

內。然後OutputUserInfo(),你可以有任何的格式,以您希望這樣你就可以瞭解他們放什麼數據

的編輯示例OutputUserInfo()

private string OutputUserInfo() { 
    return "First Name: " + tbFirstName.Text + Environment.NewLine + 
      "Surname: " + tbSurname.Text + Environment.NewLine + 
      "Address" + tbAddress.Text + Environment.NewLine; 
      // Just keep adding whatever you want on here. 
      // Add the descriptions if you want, it will probably help 
} 

你也可以有不同的格式(CSV或其他)。但如果你只是在做一個純文本文件,這可能是最簡單的。這取決於你。

+0

爲了清楚起見,我想將所有來自衆多文本框的輸入保存到一個文件中,例如,人們將個人信息輸入到名字,姓氏等形式中 – Tom

+0

是的,這肯定有助於將方法輸出爲串。我會給你添加一個例子來解答我的問題,所以你有一個基本的想法。 – krillgar

+0

我也希望它在點擊按鈕時保存對不起 – Tom

1

File.WriteAllText可能是不好的,因爲它會覆蓋您的內容。

創建新文件,將指定的字符串寫入文件,然後關閉文件。如果目標文件已經存在,它將被覆蓋。

File.AppendAllText

追加stringto文件指定相反去,創建該文件,如果它不存在。

1

我們去那裏,用Encoding追加所有的字符串。

private void button1_Click(object sender, EventArgs e) 
    { 
     if (saveFileDialog1.ShowDialog() == DialogResult.OK) 
     { 
      string line = string.Format("{0},{1}" 
      , textBox1.Text 
      , textBox2.Text); 
      File.AppendAllText(saveFileDialog1.FileName, line, Encoding.GetEncoding(1252)); 
     } 
    } 
相關問題