解决热键和搜索框功能
Work-around for hotkey and searchBox function
我有一个用于菜单的 gridview,该菜单中有或多或少的 30 个项目,因此我为该菜单实现了一个搜索框。现在我的问题是我为按钮单击事件分配了热键,当我尝试在搜索框中键入这些热键时,它不会注册,而是会执行单击事件。
如果我在搜索框中输入时,热键会注册并且点击事件不会执行,而当我不在搜索框上输入时,热键会像它一样执行,那么是否有解决方法应该。
这是我的热键事件的示例。
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
switch (keyData)
{
case Keys.A:
if (buttonThatDoSomething.Enabled == true)
{
buttonThatDoSomething.PerformClick();
}
return true;
default:
return base.ProcessCmdKey(ref msg, keyData);
}
}
我找到了解决我所处情况的方法,它对我有用
我设置了一个条件来检查搜索框焦点,如果是这样,则 keyData 将 return 其默认输入。
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
switch (keyData)
{
case Keys.A:
if (buttonThatDoSomething.Enabled == true && searchBox.Focused == true)
{
return base.ProcessCmdKey(ref msg, keyData);
}
else if (buttonThatDoSomething.Enabled == true && searchBox.Focused == false)
{
buttonThatDoSomething.PerformClick();
}
return true;
default:
return base.ProcessCmdKey(ref msg, keyData);
}
}
我有一个用于菜单的 gridview,该菜单中有或多或少的 30 个项目,因此我为该菜单实现了一个搜索框。现在我的问题是我为按钮单击事件分配了热键,当我尝试在搜索框中键入这些热键时,它不会注册,而是会执行单击事件。
如果我在搜索框中输入时,热键会注册并且点击事件不会执行,而当我不在搜索框上输入时,热键会像它一样执行,那么是否有解决方法应该。
这是我的热键事件的示例。
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
switch (keyData)
{
case Keys.A:
if (buttonThatDoSomething.Enabled == true)
{
buttonThatDoSomething.PerformClick();
}
return true;
default:
return base.ProcessCmdKey(ref msg, keyData);
}
}
我找到了解决我所处情况的方法,它对我有用 我设置了一个条件来检查搜索框焦点,如果是这样,则 keyData 将 return 其默认输入。
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
switch (keyData)
{
case Keys.A:
if (buttonThatDoSomething.Enabled == true && searchBox.Focused == true)
{
return base.ProcessCmdKey(ref msg, keyData);
}
else if (buttonThatDoSomething.Enabled == true && searchBox.Focused == false)
{
buttonThatDoSomething.PerformClick();
}
return true;
default:
return base.ProcessCmdKey(ref msg, keyData);
}
}