• ベストアンサー

Ctrl+F4を無効にしたい

さっそくですが質問に入ります。 VB.2012(.Net Framework3.5)で開発しています。 MDIの親画面、子画面を作成しています。子画面が表示された状態でキーボードでCtrl+F4を押してもなにもしないようにしたいのですが、どうすれよいでしょうか? 画面右上の×印では通常通り画面を閉じられるようにしたいのですが、キーボード操作(Ctrl+F4)による画面閉はできないようにしたいのです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

Public Class Form2 Protected Overrides Function ProcessCmdKey(ByRef msg As Message, keyData As Keys) As Boolean If keyData = Keys.Control + Keys.F4 Then ' 握りつぶす! Return True End If Return MyBase.ProcessCmdKey(msg, keyData) End Function End Class

bxe01016
質問者

お礼

できました! ありがとうございました。

その他の回答 (1)

回答No.1

ProcessCmdKeyをオーバーライドして、Ctrl+F4の時だけ継承元も呼び出さず、 握りつぶしてしまえばいいのでは。多分。 http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.processcmdkey(v=vs.110).aspx

bxe01016
質問者

お礼

回答ありがとうございます。

bxe01016
質問者

補足

リンク先の情報を参考にしてみたのですが、よくわかりませんでした。 Ctrl+F4を押すとCtrlを押した時点で動作しkeyData にはCtrlが入っているようです。F4をおすとkeyData にはF4が入っているようです。 Ctrlだけ、あるは、F4だけではなくCtrl+F4が押されたかどうかはどうやって判定するのでしょうか?

関連するQ&A