c# - 使用文本文件保存和加载 TextBox 或其他控件值

标签 c# winforms file io controls

我知道这可以通过应用程序设置来完成,但我想这样做:

我有一些文本框和其他具有 Text 属性的控件。我正在循环并将它们的 NameText 属性保存在文本文件中。保存语句如下:

if (ctrl != null) sb.AppendLine(ctrl.Name.ToString() + ":" + ctrl.Text);

当我想加载它们时,我想这样做,但由于我无法指向控件的名称,所以我被卡住了! (我相信在 PHP 中可以使用其他变量指向一个变量!)

using (StreamReader file = new StreamReader(ofile.FileName))
{
        while((line = file.ReadLine()) != null)
        {
            if (line.StartsWith("#")) continue; //Line is a commment so skip
            else
            {
                data = line.Split(':');
                //How to set back the text property to the variable?
            }
        }
}

我现在的想法是保存控件的 Tag 属性而不是它们的 Name 属性。但问题是我的控件都分散在侧嵌套面板和类似的东西中,所以我必须做很多循环!将它们的标签与我保存的文件中可用的标签进行比较(请注意,我不会将所有控件保存在文本文件中,只是其中的一些!)

怎么办?

最佳答案

如果您有权访问窗体的 Controls 属性,则可以通过它的名称找到控件

  var textBox = yourForm.Controls.Find("name", true) as TextBox;
  if(textBox != null)
       textBox.Text = "text"; 

关于c# - 使用文本文件保存和加载 TextBox 或其他控件值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8309413/

相关文章:

c# - 如何模拟一次请求时的主机文件

c# - .Net规则引擎

c# - 在 Winform 中按下并按住按钮事件

R,在 Windows 中获取文件名中的完整文件路径字符串(空格等)

java - 将 String 转换为 int

ios - 如何使用 csv 文件有效地初始化 iOS/Core Data 应用程序中的数据?

c# - 如何为 Dispatcher.BeginInvoke 提供回调函数

c# - 将 DataTable 绑定(bind)到 DataGrid - 不管怎样,前两列都是空的

c# - 如何使 DateTimePicker 在鼠标滚轮上递增/递减

winforms - 如何设计安装程序以便将其用于自动化验收测试