C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: Forms.Keysの保存と復元


(過去ログ 123 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■73325 / inTopicNo.1)  Forms.Keysの保存と復元
  
□投稿者/ pod (18回)-(2014/09/12(Fri) 14:08:40)

分類:[C#] 

現在VS2013 C#でSystem.Windows.Forms.Keysの列挙体をコンフィグファイルに保存し、次回起動時読み込もうとしています。

具体的には、ショートカットキーとして使用するキーをダイアログで選んで、そのキーをXMLファイルとして保存するつもりです。

・保存
Keys keys1 = Keys.A; // キー「A」
string attrKeys = keys1.ToString(); // XMLの内容

・XML
<hotkey mod="6" keys="A" />

・読み込み
Keys key1 = (Keys)Enum.Parse(typeof(Keys), hotkeyElem.GetAttribute("keys");

上のような形でやってみたのですが、「Keys.D1」等の場合や「Keys.A | Keys.B」などの同時押しが復元できません。
このようなケースではどういった形式で保存・復元するのが良いのでしょうか?
引用返信 編集キー/
■73327 / inTopicNo.2)  Re[1]: Forms.Keysの保存と復元
□投稿者/ Hongliang (230回)-(2014/09/12(Fri) 14:21:21)
System.Windows.Forms.KeysConverterを使って、ConvertToStringで文字列に、ConvertFromStringで文字列から変換してやればどうでしょうか。
引用返信 編集キー/
■73330 / inTopicNo.3)  Re[2]: Forms.Keysの保存と復元
□投稿者/ Hongliang (231回)-(2014/09/12(Fri) 15:21:20)
あ、どのみちKeys.AとKeys.Bの組み合わせって言うのはKeys列挙体のインスタンス1つでは表現不可能ですよ。Keys.A | Keys.Bは素っ頓狂なキーを指すことになります。
組み合わせ可能なのは1つの普通のキーと任意の修飾キー(Alt,Ctrl,Shift)だけです。
普通のキーの組み合わせを表現したいなら、KeysのListとかで表現する必要があります。
引用返信 編集キー/
■73334 / inTopicNo.4)  Re[3]: Forms.Keysの保存と復元
□投稿者/ pod (19回)-(2014/09/13(Sat) 15:15:52)
No73330 (Hongliang さん) に返信
>System.Windows.Forms.KeysConverterを使って、ConvertToStringで文字列に、ConvertFromStringで文字列から変換してやればどうでしょうか。

> あ、どのみちKeys.AとKeys.Bの組み合わせって言うのはKeys列挙体のインスタンス1つでは表現不可能ですよ。Keys.A | Keys.Bは素っ頓狂なキーを指すことになります。
> 組み合わせ可能なのは1つの普通のキーと任意の修飾キー(Alt,Ctrl,Shift)だけです。
> 普通のキーの組み合わせを表現したいなら、KeysのListとかで表現する必要があります。

回答有難うございます。
KeysConverter というのがあるのですね。そちらに書き換えて使うことにします。
組み合わせに関してはやはり一発では表せないとのことですので、区切って保存した上で復元時にリスト配列を使う形でやってみようと思います。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -