Enter/Returnキーを押したときにMessageBoxが表示されない次のコードがあります。
その他のキー(文字/数字など)の場合、メッセージボックスはFalseを示します。
private void cbServer_TextChanged(object sender, EventArgs e)
{
if (enterPressed)
{
MessageBox.Show("Enter pressed");
}
else
MessageBox.Show("False");
}
private void cbServer_Keydown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return)
{
enterPressed = true;
MessageBox.Show("Enter presssed: " + enterPressed);
}
else
enterPressed = false;
}
何か案は?
編集:コードの上で、問題は_Keydownにあると思ったので、それだけを投稿しました。
これは、 EnterTextChanged
イベントは発生しません。
あなたのフォームデザイナークラス(formname.designer.cs)にこれを追加してください:
this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Login_KeyPress);
このコードをバックボーンコード(formname.cs)に追加します。
void Login_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)13)
MessageBox.Show("ENTER has been pressed!");
else if (e.KeyChar == (char)27)
this.Close();
}
private void textBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
MessageBox.Show("Enter key pressed");
}
else if (e.Key == Key.Space)
{
MessageBox.Show("Space key pressed");
}
}
テキストボックスまたは入力に表示される前にPreviewKeyDownイベントを使用してキーを検出します