窗体加载,Windows窗体应用程序时,文本框不填充

时间:2014-02-14 10:24:35

标签: c#

我正在关注表单Load,

  1. 我正在搜索文件,如果文件不存在则
  2. 在表单上填写一些文本框。
  3. 创建文件名data.txt
  4. 从文本框中获取数据并将其写入文件中。
  5. 问题是文本框没有填充文本。我每次都在运行程序并删除文件,以便第一个条件成立。但是表单上的文本框仍然是空的。我正在使用Visual Studio 2012。

    我在InitializeComponent();

    下使用以下代码
    string folder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
    
    // Combining the base folder with specific folder....
         string path= Path.Combine(folder, "CRM");
    
    // Checking if folder exists and if not, create it
                if (!Directory.Exists(path))
                    Directory.CreateDirectory(path);
    
        if (!File.Exists(path + "\\data.txt"))
        {
            txtBoxLimitPerMinute.Text = "300";
            txtBoxSenderName.Text = "Sender Name";
            txtBoxToEmail.Text = "some email id";
            txtBoxSMTPHost.Text = "host name";
    
            string data = txtBoxSenderName.Text + "," + txtBoxSubject.Text + "," + txtBoxToEmail.Text + "," + txtBox_HtmlPath.Text + "," + txtBoxUnsubscribe.Text + "," + txtBoxSMTPHost.Text + ";
    
            using (FileStream fs = new FileStream(path+ "\\data.txt", FileMode.Create))
            {
                using (StreamWriter w = new StreamWriter(fs))
                {
                    w.WriteLine(data);
                }
            }
        }
    

3 个答案:

答案 0 :(得分:0)

我建议你在 InitializeComponent()

之后编写代码

因为 InitializeComponent()方法会创建文本框和其他控件的对象,所以我建议您在创建后对控件执行任何操作。

答案 1 :(得分:0)

由于您已在IntializeComponent()方法下编写代码,因此请确保在您编写的代码之后,Textbox值未分配回string.empty值。 (即文本框值不会像下面那样被覆盖)

E.g。

this.txtBoxLimitPerMinute.Text = String.Empty;

并且还在this.Controls.Add(this.txtBoxLimitPerMinute);之后编写代码,因为当控件添加到表单时,它将重置为默认值。因此,您需要在表单中添加所有控件或在表单中添加四个文本框后编写代码。

但我建议在IntializeComponent()调用后编写代码。

答案 2 :(得分:0)

在InitializeComponent()

之后编写代码

然后使用this.txtBoxLimitPerMinute.Text =“300”;