我们从网格控件的单元格中显示一个子对话框。该对话框包含一个ToolStrip,其中包含带有&符号的项目,可以从键盘快速访问它们。一切正常:我们可以按ALT显示那些键盘提示,和/或发出ALT + M,C等按键来激活相应的ToolStrip命令。
但是如果我们打开一个ToolStrip的下拉菜单并且没有做出选择,那么点击我们的子对话框外面以这种方式关闭它,ToolStrip变得疯狂。当我们再次打开对话框时,键盘提示最初加下划线,最后一个顶级项目可能会突出显示,而我们的ALT命令不起作用。
如何重置ToolStrip以使其在此方案中正常工作?
答案 0 :(得分:0)
之前我们在子对话框的OnHide事件中使用ToolStripDropDown的Hide方法在对话框关闭时自动关闭每个活动的下拉菜单,但正确的解决方案应该是:
fToolStripDropDownButtonClear.DropDown.Close(ToolStripDropDownCloseReason.ItemClicked)
即。需要使用'ItemClicked'参数值完全发出Close方法。