0
私はMDI
winformsプロジェクトで作業していますが、F3のショートカットを使用して、アプリケーション内のすべての場所で検索フォームを開きます。私MDI
親フォーム内のコードと設定、親フォームのKeyPreview
true
へ:winフォームアプリケーションのすべての形式で動作するショートカットを定義します
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == (Keys.F3)) {
//Show search form
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
ショートカットはMDI
親と子の形で動作しますが、私はMDI
子フォームのいずれかからフォームを開くとショートカットが」doesnの.ShowDialog()
を使用して最後の形での作業、つまり、ショートカットは、で動作します:
//in the parent form
var childForm = new Form1();
childForm.MdiParent = parentForm;
childForm.KeyPreview = true;
childForm.Show();
が、grandChildForm
形式では動作しません:
//in the child form
var grandChildForm = new Form2();
grandChildForm.KeyPreview = true;
grandChildForm.ShowDialog();
どのように私はすべての形式でProcessCmdKey()
方法を繰り返すことなく、問題を解決することができますか?