私はC#のWindowsパネルコントロールでキープレスイベントを取得したいのですが、私にとってはどんな体の助けでもあります...
23910 次
4 に答える
13
Panel.KeyPressイベントを処理する必要があります。
例
public void MyKeyPressEventHandler(Object sender, KeyPressEventArgs e)
{
... do something when key is pressed.
}
...
(MyPanel as Control).KeyPress += new KeyPressEventHandler(MyKeyPressEventHandler);
于 2010-01-25T12:25:27.207 に答える
9
問題は、最初にメイン フォームが KeyPress を取得し、すぐにこのメッセージをアクティブなコントロールに送信することです。それがこのキーの押下を処理しない場合、親コントロールなどにバブルアップされます。
このチェーンをインターセプトするには、Form.KeyPreview
totrue
にハンドラーを追加する必要がありますForm.KeyPress
。これで、押されたキーをフォーム内で処理できるようになりました。
于 2010-01-25T12:51:23.560 に答える
3
「Panel」オブジェクトは「KeyPress」イベントを正しく受け取ることができません。
オーバーロードを作成しましたPanel
:
public class PersoPanel : Panel
オーバーライドされたメソッドを使用しましたProcessCmdKey
:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
押されたキーをインターセプトするには:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
MessageBox.Show("You press " + keyData.ToString());
// dO operations here...
return base.ProcessCmdKey(ref msg, keyData);
}
于 2010-03-16T10:00:55.650 に答える
1
パネル + キープレス - C# ディスカッション ボード - CodeProject
http://www.codeproject.com/Messages/704386/Panel-plus-Keypress.aspx
于 2010-12-10T08:24:58.217 に答える