我是一名正在學習編碼的土木工程師(所以請不要判斷)。我正在使用streamwriter將文本框資料寫入 txt 檔案,但我有數百個文本框。一個一個地寫 texboxes 名稱讓我發瘋,資料庫不是一種選擇。我現在在互聯網上搜索了 3 個多小時,但找不到合適的解決方案。以下代碼作業正常,但必須有一種方法可以避免寫入所有文本框名稱。我真的很感激這里關于如何在文本檔案中撰寫所有文本框內容的任何指南?
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
//saveFileDialog1.InitialDirectory = @"C:\";
saveFileDialog1.Title = "Save Project Files";
saveFileDialog1.DefaultExt = "txt";
saveFileDialog1.FileName = "1";
saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
string pdfPath = "";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
using(StreamWriter writer = new StreamWriter(saveFileDialog1.FileName))
{
writer.WriteLine(Tb_ProjectName.Text);
writer.WriteLine(tb_ClientName.Text);
writer.WriteLine(tb_ProjectPic.Text);
writer.WriteLine(tb_AgencyName.Text);
writer.WriteLine(tb_AgencyLogo.Text);
writer.WriteLine(tb_ContractorName.Text);
writer.WriteLine(tb_ContractorLogo.Text);
}
pdfPath = saveFileDialog1.FileName;
}
uj5u.com熱心網友回復:
大衛已經在他的評論中給出了正確的答案。所以這里寫了一個額外的提示:
在您的代碼中,您可以遍歷所有可用的文本框并將其內容寫入檔案。您必須考慮兩件事。首先,所有文本框應該以什么順序寫入。其次,是否有任何不應寫入檔案的文本框。
對于這兩種情況,您應該使用可視化編輯器來設定所有文本框的TabIndex屬性以設定內容的寫入順序,并且您可以使用該屬性Tag來包含一些內容來標記文本框不被寫入檔案。
代碼草圖看起來像這樣:
using(StreamWriter writer = new StreamWriter(saveFileDialog1.FileName))
{
var textBoxesToWrite = this.Controls
.OfType<TextBox>()
.Where(textBox => textBox.Tag != null)
.OrderBy(textBox => textBox.TabIndex)
foreach (var textBox in textBoxesToWrite)
{
writer.WriteLine(textBox.Text);
}
}
uj5u.com熱心網友回復:
1:創建一個面板并將所有文本框放入其中。
2:使用 foreach 回圈從該面板中獲取所有文本框:
string allTextBoxContent = string.Empty;
foreach (var control in panel1.Controls)
{
if (control is TextBox textbox)
{
allTextBoxContent = textbox.Text;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/331406.html
上一篇:如何設定不同代碼行之間的延遲
