2016-12-31 177 views
-4

我有一個名爲「KeyboardInput」的密鑰數組。我怎樣才能將其存儲在設置,然後又讀出來作爲單獨的按鍵有點像:在設置中存儲密鑰陣列

for (int i = 0; i < KeyboardInput.Length; i++) 
{ 
    KeyboardInput[i] = (Keys)Enum.Parse(typeof(Keys), {{ Properties.Settings.Default.Keys[i]?? }}); 
} 

Keys[] KeyboardInput = { Keys.A, Keys.S, Keys.N, Keys.M, Keys.H, Keys.F, Keys.T, Keys.G, Keys.W, Keys.Q, Keys.Z, Keys.X, Keys.Right, Keys.Left, Keys.Up, Keys.Down };

+0

Settings以字符串格式(XML)存儲,因此您可以將它們全部加入到一個字符串中,然後拆分存儲的字符串並進行解析。另一種方法是查看XML或JSON序列化。 – Slai

+0

@EZI在我的情況下似乎沒有幫助 – PRAGMA

+0

@PRAGMA您想保存一些設置並在稍後閱讀,我錯過了什麼? –

回答

2

令人驚訝的前Related question答案似乎工作。添加設置後,右鍵單擊Settings.settings在Solution Explorer中,打開...任何文本編輯器,並更改類型:

<Setting Name="Keys" Type="System.Windows.Forms.Keys[]" Scope="User"> 

這也將更新Settings.Designer.cs文件,然後你可以使用它是這樣的:

Keys[] KeyboardInput = { Keys.A, Keys.S, Keys.N, Keys.M, Keys.H, Keys.F, Keys.T, Keys.G, 
       Keys.W, Keys.Q, Keys.Z, Keys.X, Keys.Right, Keys.Left, Keys.Up, Keys.Down }; 

Properties.Settings.Default.Keys = KeyboardInput; 
Properties.Settings.Default.Save(); 

Keys[] keys = Properties.Settings.Default.Keys; 
+0

我通過做.split(',')來讀取它,結束了使用原來的評論。 – PRAGMA