我正在尝试编写一个代码,用户在文本框中输入交付详细信息,然后将文本添加到txt文件(记事本文本文件)。 这是我的尝试,我得到一个额外的行“,”,为什么它不将文本框中的文本添加到文本文件中?
private void FrmDelivery_Load(object sender, EventArgs e)
{
if (theDelivery != null)
{
txtCustomerName.Text = theDelivery.customerName;
txtCustomerAddress.Text = theDelivery.customerAddress;
txtArrivalTime.Text = theDelivery.arrivalTime;
using (StreamWriter writer = new StreamWriter("visits.txt", true)) //true shows that text would be appended to file
{
writer.WriteLine(theDelivery.customerName + ", " + theDelivery.customerAddress + ", " + theDelivery.arrivalTime);
}
}
}
答案 0 :(得分:2)
问题是您正在Form_Load
上写入文件。我假设您只想在用户更改内容时写入它。
所以你可以处理一个保存按钮的点击事件来写信给它:
private void FrmDelivery_Load(object sender, EventArgs e)
{
if (theDelivery != null)
{
txtCustomerName.Text = theDelivery.customerName;
txtCustomerAddress.Text = theDelivery.customerAddress;
txtArrivalTime.Text = theDelivery.arrivalTime;
}
}
private void btnSave_Click(object sender, System.EventArgs e)
{
string line = string.Format("{0},{1},{2}{3}"
, txtCustomerName.Text
, txtArrivalTime.Text
, theDelivery.arrivalTime
, Environment.NewLine);
File.AppendAllText("visits.txt", line);
}
File.AppendAllText
只是另一种(舒适的)写入文件的方式。
答案 1 :(得分:1)
..因为你没有把文本框的内容写到文件中..你正在编写变量(似乎没有在任何地方初始化):
修正:
writer.WriteLine(txtCustomerName.Text + ", " + txtCustomerAddress.Text + ", " + txtArrivalTime.Text); // Fixed.
另外,你在Form load上这样做..此时文本框中是否有数据(或theDelivery
已初始化)?
答案 2 :(得分:0)
Delivery对象insatance的customerName,customerAddress和arrivalTime字符串属性都初始化为空字符串。在写入文件之前,应该设置一些字符串。