KeyDownイベント – プログラミング – Home

通知
すべてクリア

[解決済] KeyDownイベント


Kon
 Kon
(@Kon)
ゲスト
結合: 19年前
投稿: 89
Topic starter  

いつもお世話になっておりますKonです。よろしくお願いします。

PCはWinXP、Visual C++ 2005 Express Edition を使用しています。
Windowsフォームアプリケーション でプロジェクトを作成しています。

最終目標は、ボタンを押すと全画面表示してくれるプログラムなのですが、
未熟者ですので、徐々に勉強しながら作ろうということで、
とりあえず、Escを押すと復帰する。という部分を作っています。

Form1のKeyDownプロパティから、下記の関数を呼びたいのですが、

private: System::Void Form1_KeyDown(System::Object^ sender,
System::Windows::Forms::KeyEventArgs^ e)
{
 if ( e->KeyCode == Keys::Escape){
  ・・・略
 }
 Refresh();
}

そもそもどのKeyを押してもこの関数が呼ばれません。
Form1には、子ウインドウがあります。
何が問題なのでしょうか?


引用未解決
トピックタグ
Kon
 Kon
(@Kon)
ゲスト
結合: 19年前
投稿: 89
Topic starter  

ごめんなさい。
this->KeyPreview = true;
になっていませんでした。


返信引用
chamaro
 chamaro
(@chamaro)
ゲスト
結合: 17年前
投稿: 19
 

子ウィンドウがフォーカスを持っているので、キーダウンのイベントは子ウィンドウに
送られます。

Formで取得したい場合は、KeyPreviewプロパティをtrueにします。

http://msdn2.microsoft.com/ja-
jp/library/system.windows.forms.form.keypreview.aspx


返信引用
Kon
 Kon
(@Kon)
ゲスト
結合: 19年前
投稿: 89
Topic starter  

chamaro さんありがとうございました。
Escape 受け取れたようです。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました