私はWindows.Formを持っており、そこにはProcessCmdKeyがオーバーライドされています。ただし、これはF10を除くすべてのFキーで動作します。フォーム上でF10を押すと、ProcessCmdKeyが呼び出されない理由を検索しようとしています。F10キーがキャッチされません
誰かが原因を見つける方法についてのヒントを教えてください。
よろしく、トーマス
私はWindows.Formを持っており、そこにはProcessCmdKeyがオーバーライドされています。ただし、これはF10を除くすべてのFキーで動作します。フォーム上でF10を押すと、ProcessCmdKeyが呼び出されない理由を検索しようとしています。F10キーがキャッチされません
誰かが原因を見つける方法についてのヒントを教えてください。
よろしく、トーマス
Windowsが異なっF10を扱います。説明は「備考」に記載されていますhere on MSDN
彼はKeyDownではなくProcessCmdKeyを使用しています。これは正常に動作するはずです。 –
このコードを.NETのWindowsフォームでテストしたところ、期待どおりのメッセージボックスが得られました。
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.F10)
{
MessageBox.Show("F10 Pressed");
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
私は新しいフォームを作成するときにもそれが働いています。しかし、なぜF10が既存のフォームと連携していないのかを知る必要があります。 – BennoDual
私はそう推測しようと、あなたの問題を得たことがある:
あなたはtrue
にあなたのWindowsFormののKeyPreview
プロパティを設定しましたか?
これにより、正確な瞬間にUIにフォーカスを当てているコントロールにポンピングする前に、WindowsFormのキーストップイベントが可能になります。
どうすればいいのか教えてください。
よろしくお願いいたします。
私はsystem.windows.input.key.F10にe.keyに一致するようにしようとしていたと(F9がしたスルーF1 althougth)それは動作しませんしませんでした私の場合ははい - KeyPreviewをtrueに設定しましたが、機能しません。 – BennoDual
"これはF10以外のFキーでも動作しますが、この時点では、インストールされているPCに何らかのアプリケーションがインストールされている場合は、個人的に他の回答は表示されません。メディアアプリケーション...あなたは他のPCであなたのアプリを実行しようとすることはできますか? – Tigran
ちょうど好奇心@ t.kehl、それは私の最後のコメントに関連したものでしたか? Cuaseは、実際にそれについて考えていますが、私はVS 2010のようなものを期限切れにしました。私はいくつかのアプリケーションをインストールして、フックをインストールしました。 – Tigran
Select Case e.Key
Case is = Key.F10
... do some stuff
end select
しかし、私は変更それは
Select Case e.Key
Case is = 156
... do some stuff
end select
となりました。
Fロックを解除しましたか? –
代わりにKeyDownイベントを使用しようとすると、動作するはずです。 – Tigran