在C#应用程序中存储数据
我收到一条消息,提示用户升级连接到计算机的某些设备。我想让用户在以后禁用此消息,方法是在按“取消”之前选中一个框在C#应用程序中存储数据,c#,C#,我收到一条消息,提示用户升级连接到计算机的某些设备。我想让用户在以后禁用此消息,方法是在按“取消”之前选中一个框 如何存储此用户选项,以便下次执行程序时,根据用户在应用程序最后一个会话中所做的选择,避免显示此消息 您需要使应用程序中的消息使用自定义表单。该表单需要显示消息以及复选框。然后你会想把这些信息存储在某个地方。我将在应用程序配置文件中说 因此,要将数据保存在配置文件中,首先构建一些扩展方法以使其更容易: public static class Extensions { publi
如何存储此用户选项,以便下次执行程序时,根据用户在应用程序最后一个会话中所做的选择,避免显示此消息 您需要使应用程序中的消息使用自定义表单。该表单需要显示消息以及复选框。然后你会想把这些信息存储在某个地方。我将在应用程序配置文件中说 因此,要将数据保存在配置文件中,首先构建一些扩展方法以使其更容易:
public static class Extensions
{
public static void SetValue(this KeyValueConfigurationCollection o,
string key,
string val)
{
if (!o.AllKeys.Contains(key)) { o.Add(key, val); }
else { o[key].Value = val; }
}
public static string GetValue(this NameValueCollection o,
string key,
object defaultVal = null)
{
if (!o.AllKeys.Contains(key)) { return Convert.ToString(defaultVal); }
return o[key];
}
}
然后,当您想读取该值以确定是否应该显示该消息时,请执行以下操作:
var val = (bool)ConfigurationManager.AppSettings.GetValue("ShowTheMessage");
var config = ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
var app = config.AppSettings.Settings;
app.SetValue("ShowTheMessage", checkBox.Checked);
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
然后,如果要保存该值,请执行以下操作:
var val = (bool)ConfigurationManager.AppSettings.GetValue("ShowTheMessage");
var config = ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
var app = config.AppSettings.Settings;
app.SetValue("ShowTheMessage", checkBox.Checked);
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
最干净的两种方法是注册表和 我更喜欢用户设置,因为:
更改设置后,只需保存设置即可:
Properties.Settings.Default.ShowDisconnectMessage = false;
Properties.Settings.Default.Save();
注册表的工作原理类似,但它需要更多的代码,并且不是强类型:
RegistryKey key = Registry.CurrentUser.OpenSubKey("Software",true);
Key = key.OpenSubKey("AppName", true);
key.SetValue("ShowDisconnectMessage ", "false");
登记处?用户设置?阅读有关隔离存储类(System.IO.IsolatedStorage)的文档。这对于少量存储可能很有用。对象序列化?@DStanley可能是用户设置?我不知道,我的经验很少。最简单的方法(不一定是最好的)可能就是使用app.config:。这个问题显示了如何阅读,但你也可以在其中设置键。谢谢,这很有魅力!