Хорошо, я хочу, чтобы пользователь мог нажать клавишу ввода, чтобы инициировать нажатие кнопки во время ввода текстового поля.
У меня есть следующий код:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13)
{
button3_Click(sender, e);
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
this.textBox1.KeyUp += new System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown);
}
private void button3_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("Please enter a value.", "No name entered", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else
{
if (listBox1.Items.Contains(textBox1.Text) == true)
{
MessageBox.Show("You have tried to enter a duplicate.", "No duplicates allowed", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else
{
listBox1.Items.Add(textBox1.Text);
textBox1.Text = "";
}
}
}
Однако, когда я нажимаю ввод, значение сохраняется, а затем появляется окно MessageBox, говорящее «пожалуйста, введите значение» примерно 4 раза. Как я могу заставить этот код делать button_click только один раз при нажатии ввода?
Есть ли более простой способ сделать это?
Спасибо!