是啥导致系统发出蜂鸣声?
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;
添加到您的TextBox
的KeyPressed
事件中。
通常,如果您的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 字符时,这会导致系统发出蜂鸣声