2008年9月29日月曜日

[.NET]普通のボタンにショートカットキーを割り当てる

「とあるFormのメニューにある項目をボタンに変更したい。ただしショートカットは使用したい。」

という仕様変更を言い渡されました。まぁ単純に考えると、FormのKeyPreview=Trueに変更して、キーイベントをアレして実装すればよいのですが、ほかに方法がないかと調査してみました。


調べてみたものの、ショートカットのみっていう機能みつからず、あきらめてメニューから項目削除しようとしたところ、Visibleプロパティがあるではないですが。そこで、
  1. 該当のメニューの制御(Enableプロパティの制御)そのままのこす
  2. 該当のメニューのVisible=Falseにする
  3. ボタンのクリックイベントを該当のメニューのクリックイベントに同じメソッドを指定する
  4. ボタンのEnable制御は1.のタイミングで実施する

ということを実装してみました。というかほとんど実装していません。そしてToolTipにそれらしいショートカットーを表示すると、ショートカットの機能する(しているようにみえる)ボタンが完成しちゃいました。
いいやり方とはいえませんが、こんな使い方もできちゃうんですねぇ。

0 件のコメント: