- ベストアンサー
Ctrl+F4を無効にしたい
さっそくですが質問に入ります。 VB.2012(.Net Framework3.5)で開発しています。 MDIの親画面、子画面を作成しています。子画面が表示された状態でキーボードでCtrl+F4を押してもなにもしないようにしたいのですが、どうすれよいでしょうか? 画面右上の×印では通常通り画面を閉じられるようにしたいのですが、キーボード操作(Ctrl+F4)による画面閉はできないようにしたいのです。 よろしくお願いします。
- みんなの回答 (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
その他の回答 (1)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
ProcessCmdKeyをオーバーライドして、Ctrl+F4の時だけ継承元も呼び出さず、 握りつぶしてしまえばいいのでは。多分。 http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.processcmdkey(v=vs.110).aspx
お礼
回答ありがとうございます。
補足
リンク先の情報を参考にしてみたのですが、よくわかりませんでした。 Ctrl+F4を押すとCtrlを押した時点で動作しkeyData にはCtrlが入っているようです。F4をおすとkeyData にはF4が入っているようです。 Ctrlだけ、あるは、F4だけではなくCtrl+F4が押されたかどうかはどうやって判定するのでしょうか?
お礼
できました! ありがとうございました。