私は Windows フォームを持っています。ユーザーEnterがフォーカスを次のコントロールに設定するときに必要です。これを達成する方法(キープレスイベントを使用せずに)
質問する
4112 次
3 に答える
6
フォームの KeyPreview をキャッチできます。コンストラクターで KeyPreview を true に設定すると、これを使用できます。
protected override bool ProcessKeyPreview(ref Message m)
{
if (m.Msg == 0x0100 && (int)m.WParam == 13)
{
this.ProcessTabKey(true);
}
return base.ProcessKeyPreview(ref m);
}
于 2013-01-16T04:35:26.820 に答える
1
ProcessCmdKey を使用して、keyData にEnterキーが含まれているかどうかを確認し、SelectNextControl
メソッドを使用してフォーカスを設定できます。
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData.HasFlag(Keys.Enter))
{
SelectNextControl(ActiveControl,true,true,true,true);
return true; //Stops the beeping
}
return base.ProcessCmdKey(ref msg, keyData);
}
于 2013-01-16T04:46:13.213 に答える
0
キープレスイベントを使用したくない場合は、オーバーライドする必要がありますProcessCmdKey
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Return)
{
MessageBox.Show("You pressed the Enter key");
}
return base.ProcessCmdKey(ref msg, keyData);
}
于 2013-01-16T04:38:32.437 に答える