4

これは、入力ボタンで検索を開始できるようにするために使用しているものです。動作しますが、システムのビープ音が発生します。理由がわかりません。

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

    }

コード内の他の行ではなく、Enter キーを押すとすぐに発生します。私が欠けているものについての考え?

これがsearchbutton_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;
        }

    }
4

2 に答える 2

1

(に加えてKeyUp)次のイベントハンドラーを追加します。

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

つまり、KeyPressイベントをサブスクライブし、Enterが押されたら、に設定e.Handledtrueます。これを自分のマシンでテストしたところ、機能しました。ビープ音が消えました。

于 2012-06-19T15:04:02.160 に答える
1

のイベントに追加e.Handled = true;してみてください。KeyPressedTextBox

通常、プロパティが設定されFormていない場合、AcceptButton内で Enter キーを押すとシステム ビープ音が鳴りTextBoxます。ビープ音は、 に既定のボタンが定義されていないことを示しますForm

于 2012-06-19T14:56:35.270 に答える