如果 (e.KeyCode == Keys.Enter) 不起作用
if (e.KeyCode == Keys.Enter) is non-functional
我有这个
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 语句后的代码是有效的,因为我在按钮上有完全相同的代码并且它工作得很好。
确保控件有焦点,或将事件重定向到控件
https://msdn.microsoft.com/en-us/library/system.windows.forms.control.keydown%28v=vs.110%29.aspx
在按键事件中使用您的代码,而不是按键事件,这将使事件完全执行并有资格读取按下的键。
我已经调整了你的代码并且它可以工作,你不必使用 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);
}
}
为您的 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;
我有这个
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 语句后的代码是有效的,因为我在按钮上有完全相同的代码并且它工作得很好。
确保控件有焦点,或将事件重定向到控件
https://msdn.microsoft.com/en-us/library/system.windows.forms.control.keydown%28v=vs.110%29.aspx
在按键事件中使用您的代码,而不是按键事件,这将使事件完全执行并有资格读取按下的键。
我已经调整了你的代码并且它可以工作,你不必使用 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);
}
}
为您的 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;