2014-10-26 39 views
0

默认情况下,我有一个全局键的应用程序,它完美的工作,但我希望当别人使用我的应用程序,通过改变它在我的应用程序设置窗体中使用他们所需的全局键。如何在Windows窗体应用程序中更改我的应用程序中使用的默认全局键?

3复选框,一个用于CTRL,ALT和转变,从一个组合框Z和保存新的全球关键并且可以将其保存为将来使用一个按钮,但我不知道如何去做吧。

a picture of my form

我使用的Visual Studio 2013,Windows窗体和我想的设置保存关闭,并再次打开该应用后加载它。

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

回答

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; 

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

+0

对不起,我是C#新手,你能解释一下还是更清楚? – Nashalj 2014-10-26 19:30:35

+0

谢谢反正男人 – Nashalj 2014-10-26 19:49:47

+0

我有这条线的问题:Enum.TryParse(comboBox1.SelectedValue.ToString(),out selectedKey);调试器得到托盘解析问题? whay? – Nashalj 2014-10-26 19:53:06

0

看起来您正在寻求帮助,让最终用户修改您的应用程序的键盘设置。有几种可能的方法可以做到这一点:

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

  2. 让您的应用程序从外部配置文件(例如.txt/.xml /等)解析其配置数据。每当用户更改并保存其配置时,使用新设置覆盖此配置文件。 为.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

+0

不,我的应用程序不会从文件中解析其配置数据,我wantjust用户可以使用她所期望的全球键。 – Nashalj 2014-10-26 18:49:17

+0

您应该更具体 - 首先,您是使用Windows Forms还是WPF?其次,当你说“未来使用”时,是指应用程序运行时的其余部分,还是打算在应用程序关闭并重新打开后继续进行选择? – furkle 2014-10-26 18:50:51

+0

这是一个窗体,我希望它在关闭并再次打开应用程序后再次保存和加载 – Nashalj 2014-10-26 18:59:35

相关问题