Что вызывает системный гудок?

Это то, что я использую, чтобы позволить кнопке ввода начать поиск. Это работает, но вызывает системный гудок. Понятия не имею почему.

    private void searchbox_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            searchbutton.PerformClick();
        }
        else
        {
            //Run.
        }

    }

Это происходит, как только я нажимаю клавишу ввода, а не какую-то другую строку в коде. Мысли о том, что мне не хватает?

Вот кнопка search_Click:

    private void searchbutton_Click(object sender, EventArgs e)
    {
        var searchvar = searchbox.Text;
        SqlParameter var1 = new SqlParameter(@"var1", SqlDbType.Text);
        var1.Value = "%" + searchvar + "%";
        var conn = new SqlConnection("Data Source=TX-MANAGER;Initial Catalog=Contacts;Integrated Security=True");
        var comm = new SqlCommand(@"SELECT [Name ID], First, Last, Address, City, State, ZIP FROM contacts WHERE (First LIKE @var1) OR (Last LIKE @var1)", conn);
        if (checkBox1.Checked == true)
        {
            comm.CommandText += "ORDER BY ZIP";
        }
        else
        {
            //Run.
        }
        try
        {
            comm.Parameters.Add(var1);
            conn.Open();
            comm.CommandType = CommandType.Text;
            SqlDataAdapter da = new SqlDataAdapter(comm);
            DataTable dt = new DataTable();
            da.Fill(dt);
            dataGridView1.DataSource = dt;
            conn.Close();
        }
        catch (Exception e1)
        {
            display_box.Text = e1.ToString();
            tabControl1.Focus();
        }
        finally
        {
            int rowcount = dataGridView1.RowCount - 1;
            count.Text = rowcount.ToString();
            tabControl1.SelectedTab = tabPage2;
        }

    }

2 ответа

Решение

Вы можете попробовать добавить e.Handled = true; к KeyPressed событие для вашего TextBox,

Обычно, если ваш Form не имеет своего AcceptButton При установке свойства системный звуковой сигнал воспроизводится при нажатии Enter внутри TextBox, Звуковой сигнал указывает, что для вашего Form,

Добавьте следующий обработчик событий (в дополнение к KeyUp):

private void searchbox_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == '\r')
        e.Handled = true;
}

То есть подписывайтесь на KeyPress событие и когда Enter нажата, установлена e.Handled в true, Я только что проверил это на моей машине, и это сработало; он убрал звуковой сигнал.

Другие вопросы по тегам