ToolsStripDropDownButton不响应PerformClick

时间:2014-08-05 12:55:41

标签: c# winforms

我在Windows窗体应用程序中添加了System.Windows.Forms.ToolStripDropDownButton,现在我正在尝试添加键盘快捷键以单击此按钮

但是,当我调用button.PerformClick()时,它根本无法打开:

void _Cnc_KeyPress(object sender, KeyPressEventArgs ){
    btnFiltros.PerformClick();
}

这是设计的吗?有没有其他方法来模拟点击或正确打开下拉列表?

修改

我这样做的原因是我有一个可以在无鼠标设备中使用的工作应用程序,因此我必须通过键盘实现整个导航

1 个答案:

答案 0 :(得分:1)

您的表单是否设置了KeyPreview属性?您需要它来接收所有关键事件。

  

当此属性设置为true时,表单将接收所有KeyPress,KeyDown和KeyUp事件。在表单事件处理程序完成键击处理之后,然后将键击分配给具有焦点的控件。

表格http://msdn.microsoft.com/en-us/library/system.windows.forms.form.keypreview.aspx

对于toolstripdropdownbutton,您必须先选择下拉项。以下代码段显示了如何执行此操作。

// This method shows the drop-down for the first item 
// in the form's ToolStrip. 
private void showButton_Click(object sender, EventArgs e)
{
    ToolStripDropDownItem item = this.toolStrip1.Items[0] as ToolStripDropDownItem;

    if (item.HasDropDownItems)
    {
        item.ShowDropDown();
    }
}