-1

我正在尝试编写一个代码,用户在文本框中输入交付详细信息并将文本添加到 txt 文件(记事本 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);
        }
    }
} 
4

3 回答 3

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只是写入文件的另一种(舒适)方式。

于 2012-11-26T22:46:30.817 回答
1

..因为您没有将文本框的内容写入文件..您正在编写变量(似乎没有在任何地方初始化):

固定的:

writer.WriteLine(txtCustomerName.Text + ", " + txtCustomerAddress.Text + ", " + txtArrivalTime.Text); // Fixed.

此外,您在表单加载时执行此操作。此时文本框中是否有数据(或已theDelivery初始化)?

于 2012-11-26T22:35:18.640 回答
0

Delivery 对象实例的 customerName、customerAddress 和到达时间字符串属性都初始化为空字符串。您应该在写入文件之前设置一些字符串。

于 2012-11-26T22:53:58.403 回答