试图保存格式设置
本文关键字:设置 格式 保存 | 更新日期: 2023-09-27 18:12:48
所以我试图在设置页面上用可用的com端口填充一个组合框。
一旦设置被选择,我希望该设置被保留,并通过保存按钮保存设置功能全局可用。我想一定有比这更简单的方法!
private void Form2_Load(object sender, EventArgs e)
{
pumpPort = SerialPort.GetPortNames();
this.comboBox1.Items.AddRange(pumpPort);
this.comboBox1.SelectedItem = Properties.Settings.Default.Setting;
Properties.Settings.Default.Save();
switch (Properties.Settings.Default.Setting)
{
case "COM1":
this.comboBox1.SelectedItem = Properties.Settings.Default.COMPORT1;
break;
case "COM2":
this.comboBox1.SelectedItem = Properties.Settings.Default.COMPORT2;
break;
default:
break;
}
不用说,这在关闭form2
后不会保留任何设置。我希望即使在程序退出后它也能保留,更不用说form2
了。
当你这样做的时候:
this.comboBox1.SelectedItem = Properties.Settings.Default.Setting;`
您正在设置组合框的选定项。
我觉得你真的想要改变。
Properties.Settings.Default.Setting = this.comboBox1.SelectedItem
您可能希望在组合框的更改事件中执行分配,以便当用户选择该值时,您的设置被更新并保存。
private void Form2_Load(object sender, EventArgs e)
{
pumpPort = SerialPort.GetPortNames();
this.comboBox1.Items.AddRange(pumpPort);
}
public void comboBox1_SelectedIndexChanged(object sender, EventArgs eventArgs)
{
Properties.Settings.Default.Setting = this.comboBox1.SelectedItem;
Properties.Settings.Default.Save();
}
正如@wbennett在他的回答中指出的那样,确保indexchanged事件是在你的代码后面设置的,或者最好是在你的设计器中设置的。
您需要更新默认设置并在comboBox1更改事件上调用save。
一样:
private void Init()
{
...
this.comboBox1.SelectedIndexChanged +=
new System.EventHandler(ComboBox1_SelectedIndexChanged);
}
private void ComboBox1_SelectedIndexChanged(object sender,
System.EventArgs e)
{
//other event code
...
var comboBox = (ComboBox)sender;
var port = (string)comboBox1.SelectedItem;
Properties.Settings.Default.Setting = port;
Properties.Settings.Default.Save();
...
}