如何创建一个最初未定义的变量(string name = "";
),当用户选择一个值(在这种情况下是目录的路径)时,值(路径)保存在内存中,所以不需要再次输入。应存储此值,以便在重新启动应用程序时,它仍然可用。
这是我的全局变量:
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;
}
}
答案 0 :(得分:1)
没有"永久全局变量"。相反,使用.NET框架的内置配置机制。
在Visual Studio中,打开项目属性并导航到选项卡"设置"。现在可能是右侧窗格上的链接,表示到目前为止尚未创建默认设置。单击链接以创建设置。
然后,通过输入名称并选择类型(字符串,整数等)来添加新用户设置。确保它是用户设置,而不是应用程序设置,因为应用程序设置是只读的。从那时起,您可以使用Properties.Settings.Default.SettingName
来访问此设置,就像变量一样。
因此,在程序/机器重启之间永久保存设置,请使用Properties.Settings.Default.Save()
。
答案 1 :(得分:0)
您可以使用ResourceManager
保存配置,当您停止程序时,它会开始正确加载设置,如下所示:
ResourceManager rm = new ResourceManager("RootResourceName",
typeof(SomeClass).Assembly);
string path = rm.GetString("path");
答案 2 :(得分:0)
您可以更新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_USER\SOFTWARE\MyApplication", "DirectoryPath", String.Empty);
}
return path;
}
set
{
path = value;
Registry.SetValue(@"HKEY_CURRENT_USER\SOFTWARE\MyApplication", "DirectoryPath", path,
RegistryValueKind.String);
}
}
}