如何在Windows窗体应用程序中更改我的应用程序中使用的默认全局密钥?

时间:2014-10-26 18:34:55

标签: c# winforms

默认情况下我有一个带有全局键的应用程序,它运行正常,但我希望当其他人使用我的应用程序时,通过在我的应用程序中以设置形式更改它来使用他们想要的全局键。

3个复选框,一个用于ctrl,alt和shift,一个组合框从A到Z和一个用于保存新全局密钥的按钮,可以保存以供将来使用,但我不知道#39;不知道怎么做。

a picture of my form

我正在使用Visual Studio 2013,Windows Forms,我希望在关闭并再次打开应用程序后保存设置以加载它。

如何创建和保存此设置,以便在关闭应用程序后即可使用?

2 个答案:

答案 0 :(得分:0)

您似乎在寻求帮助,允许最终用户修改应用程序的键盘设置。有几种方法可以做到这一点:

  1. 在应用程序设置中保留对已保存密钥的内部引用。

  2. 让您的应用程序从外部配置文件(例如.txt / .xml / etc.)解析其配置数据。每次用户更改时都使用新设置覆盖此配置文件并保存其配置。 for .txt:http://msdn.microsoft.com/en-us/library/aa287535%28v=vs.71%29.aspx 对于.xml:http://msdn.microsoft.com/en-us/library/cc189056%28VS.95%29.aspx

  3. 创建一个类来封装实现Serializable的行为。在启动时加载此实例,并在用户修改配置时保存此类的新实例。 这可以帮助您开始保存对象的过程:http://tech.pro/tutorial/618/csharp-tutorial-serialize-objects-to-a-file

答案 1 :(得分:0)

您可以这样做来构建密钥对象:

Keys keys = Keys.None;

if (chkControl.Checked)
    keys |= Keys.Control;

if (chkShift.Checked)
    keys |= Keys.Shift;

if (chkAlt.Checked)
    keys |= Keys.Alt;

Keys selectedKey;

Enum.TryParse(cbSelectedKey.SelectedValue.ToString(), out selectedKey);

keys |= selectedKey;

然后将值保存在项目设置中,例如:

project settings

右键单击您的项目,转到属性然后设置。添加int类型的新字段。

然后你可以保存它:(using YourPrjName.Properties;

// Shortcut is the name of the property I created.
Settings.Default.Shortcut = (int)keys;
Settings.Default.Save();

要检索已保存的值,只需访问:

var keys = (Keys)Settings.Default.Shortcut;

有些资源可以更好地理解这里描述的每个步骤: