是啥导致系统发出蜂鸣声?

Posted

技术标签:

【中文标题】是啥导致系统发出蜂鸣声?【英文标题】:What is causing a system beep?是什么导致系统发出蜂鸣声? 【发布时间】:2012-06-19 14:49:32 【问题描述】:

这就是我用来允许输入按钮开始搜索的方法。它可以工作,但会导致系统发出哔哔声。我不知道为什么。

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

    

当我按下回车而不是代码中的其他行时,它就会发生。想我错过了什么?

这里是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;
        

    

【问题讨论】:

哈。正如我所说,当我按下回车键时会发生这种情况,单步执行代码一切正常......只需发出哔声。 【参考方案1】:

您可以尝试将e.Handled = true; 添加到您的TextBoxKeyPressed 事件中。

通常,如果您的Form 没有设置其AcceptButton 属性,则在TextBox 内按Enter 时会发出系统提示音。哔声表示没有为您的Form 定义默认按钮。

【讨论】:

【参考方案2】:

添加以下事件处理程序(除了KeyUp):

private void searchbox_KeyPress(object sender, KeyPressEventArgs e)

    if (e.KeyChar == '\r')
        e.Handled = true;

即订阅KeyPress事件,当按下Enter时,将e.Handled设置为true。我刚刚在我的机器上测试了它并且它有效;它消除了哔哔声。

【讨论】:

以上是关于是啥导致系统发出蜂鸣声?的主要内容,如果未能解决你的问题,请参考以下文章

在 .NET 的控制台上打印 ASCII 0x07 字符时,这会导致系统发出蜂鸣声

有源蜂鸣器 和无源蜂鸣器 是啥意思

在bash脚本/命令中,如何使PC发出蜂鸣声或播放声音文件?

电脑开机一直蜂鸣声

第8章 让开发板发出声音,蜂鸣器驱动

PC扬声器通过javascript发出哔哔声?