我有这个
private void toolStripTextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter || e.KeyChar == (char)Keys.Return)
{
var items = new[] { 500+ objects here };
if (toolStripTextBox1.Text.StartsWith("www."))
{
webBrowser1.Navigate(toolStripTextBox1.Text);
}
if (toolStripTextBox1.Text.StartsWith("http://"))
{
webBrowser1.Navigate(toolStripTextBox1.Text);
}
if (toolStripTextBox1.Text.StartsWith("https://"))
{
webBrowser1.Navigate(toolStripTextBox1.Text);
}
if (items.Any(item => toolStripTextBox1.Text.Contains(item)))
{
webBrowser1.Navigate(toolStripTextBox1.Text);
}
else
{
webBrowser1.Navigate("https://www.google.ca/?gws_rd=ssl#safe=active&q=" + toolStripTextBox1);
}
}
}
并且它似乎不起作用。例如。我运行它,没有错误,它只是播放Windows错误声音并且无法正常运行....
我知道if语句之后的代码是有用的,因为我在按钮上有完全相同的代码,它运行正常。
答案 0 :(得分:1)
在密钥启动事件中使用您的代码,而不是按键,这将使事件完全执行并有资格读取按下的键。
我已经调整了您的代码并且它有效,您不必使用KeyChar
而只需使用KeyCode
,它应该有用。
private void toolStripTextBox1_KeyUp(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Enter || e.KeyValue == (char)Keys.Return)
//if (e.KeyChar == (char)Keys.Enter || e.KeyChar == (char)Keys.Return)
{
var items = new[] { 500 + "objects here" };
if (toolStripTextBox1.Text.StartsWith("www."))
{
webBrowser1.Navigate(toolStripTextBox1.Text);
}
if (toolStripTextBox1.Text.StartsWith("http://"))
{
webBrowser1.Navigate(toolStripTextBox1.Text);
}
if (toolStripTextBox1.Text.StartsWith("https://"))
{
webBrowser1.Navigate(toolStripTextBox1.Text);
}
if (items.Any(item => toolStripTextBox1.Text.Contains(item)))
{
webBrowser1.Navigate(toolStripTextBox1.Text);
}
else
{
webBrowser1.Navigate("https://www.google.ca/?gws_rd=ssl#safe=active&q=" + toolStripTextBox1);
}
}
答案 1 :(得分:0)
确保控件具有焦点,或将事件重定向到控件
https://msdn.microsoft.com/en-us/library/system.windows.forms.control.keydown%28v=vs.110%29.aspx
答案 2 :(得分:0)
试试这个KeyPress
事件处理程序:
private void toolStripTextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter || e.KeyChar == (char)Keys.Return)
{
//Insert code here
听起来问题可能是该方法未绑定到KeyPress
事件。
在设计器中,单击文本框,然后单击它列出所有属性的一侧,应该有一个闪电图标,单击它,然后向下滚动到KeyPress
和确保它显示toolStripTextBox1_KeyPress
修改强>
或者,您可以以编程方式添加事件处理程序。在Form_Load
事件中,添加代码
toolStripTextBox1.KeyPress += toolStripTextBox1_KeyPress;
并在您的Form_Closed
事件处理程序中添加
toolStripTextBox1.KeyPress -= toolStripTextBox1_KeyPress;