我正在编写一个程序(我的第一个程序......),其中包含一个表单,当单击保存按钮时,该表单将文本框信息,复选框和单选按钮选项保存到文本文件中。这部分有效。
然后当表单打开时(下次运行程序时),它会从文本文件中收集所有这些选择,并将它们保存为表单中的变量。这部分有效。
我无法找到一种方法,可以在打开时自动将这些设置填充到表单中。
示例:
textBox1应显示" string userName"的内容。表单打开时。
chkBox1应该被检查,取决于" Int chkBox1的值。"
单选按钮也一样。
我一次只读取一行设置文件并确认变量有信息,我只是无法在新打开的表单上显示。 有一个简单的方法吗? 谢谢......
答案 0 :(得分:1)
通常在存储用户界面设置时 标准方法是使用XML文件来保存或加载设置 我做了这个使用xml保存用户界面组件的例子 希望它有用
https://www.dropbox.com/s/1j1qbe7udqxizr6/4.XMLConfigurationEditor.rar?dl=0
答案 1 :(得分:0)
是的。您还需要将组件(文本框,复选框等)名称存储到文件中。你保存的填充看起来会像 chkBox1,是的 chkBox2,false textBox1,“一些很酷的价值”。
然后,当您读取这些值时,您将搜索正确的控件并设置其值。您可以通过调用Controls属性来访问表单控件:例如,您可以在InitializeComponents方法调用之后在构造函数中创建Loaded事件或访问控件。控件的访问方式如下: ((CheckBox)this.Controls [“chkBox1”])。Checked = true;
现在只需将此控件用法合并到文件读取代码中即可。
顺便说一下。您还可以将值存储到应用程序设置中。这是存储此类信息的更简单方法。见link
答案 2 :(得分:0)
您可以在初始化组件之前尝试加载文件中的值。稍后,您只需使用其各自的强制转换值传递值。我还建议使用try / catch块来防止转换过程中可能出现的错误。
类似的东西:
string _TextBoxData = "No data";
bool _ChkBox1Data = false;
...
try{
System.IO.StreamReader file = new System.IO.StreamReader(@"c:\test.txt");
_TextBoxData = file.ReadLine();
_ChkBox1Data = Conver.ToBoolean(file.ReadLine());
}catch(Exception e){
MessageBox.Show(ex.ToString());
}
...
private void Form1_Load(){
TextBox1.Text = TextBoxData;
CheckBox1.Checked = ChkBox1Data;
}