如何创建一个初始未定义的变量(string name = "";
),并且当用户选择一个值(在本例中是目录的路径)时,该值(path)保存在内存中,因此不需要再次输入。这个值应该被存储,这样当我的应用程序重新启动时,它仍然可用。
static class Global
{
private static string path = "";
public static string GlobalVar
{
get { return path; }
set { path = value; }
}
}
这是我的按钮动作:
private void button1_Click(object sender, EventArgs e)
{
FolderBrowserDialog FBD = new FolderBrowserDialog();
if (FBD.ShowDialog() == DialogResult.OK)
{
textBox1.Text = FBD.SelectedPath;
Global.GlobalVar = textBox1.Text;
}
}
不存在"永久全局变量"这种东西。相反,应该使用。net框架的内置配置机制。
在Visual Studio中,打开项目属性并导航到选项卡"设置"。现在在右窗格上可能有一个链接,说明到目前为止还没有创建默认设置。点击链接创建设置
然后,通过输入名称和选择类型(string、int等)添加一个新的用户设置。确保它是用户设置,而不是应用程序设置,因为应用程序设置是只读的。从那时起,您可以像访问变量一样使用Properties.Settings.Default.SettingName
访问此设置。
因此在程序/机器重启之间永久保存设置,使用Properties.Settings.Default.Save()
。
您可以使用ResourceManager
来保存您的配置,当您停止程序时,它将开始正确加载设置,如下所示:
ResourceManager rm = new ResourceManager("RootResourceName",
typeof(SomeClass).Assembly);
string path = rm.GetString("path");
您可以更新您的Global
类,以确保值存储在注册表中,在(例如)HKEY_CURRENT_USER
下,所以:
public static class Global
{
private static string path = "";
public static string GlobalVar
{
get
{
if(String.IsNullOrWhiteSpace(path))
{
path = (string)Registry.GetValue(@"HKEY_CURRENT_USERSOFTWAREMyApplication", "DirectoryPath", String.Empty);
}
return path;
}
set
{
path = value;
Registry.SetValue(@"HKEY_CURRENT_USERSOFTWAREMyApplication", "DirectoryPath", path,
RegistryValueKind.String);
}
}
}