Joh*_*ntu 3 .net c# winforms toolstripdropdown
我有一个ToolStripDropDownButton子项CheckOnClick启用的地方.
我想给用户关闭下拉前挑选多个项目的能力,但我找不到这样做没有设置的方式AutoClose来false和这样做了另外一个问题,这是怎么关闭它,当用户单击控件外的任何位置(即应该关闭它的时间).
我已经看到类似的问题如何关闭设置为autoclose = false的toolstripmenuitem?但是Click在每个组件上放置事件处理程序的建议并不完全是我所追求的.无论是通过鼠标还是键盘控制,都应该失去焦点.
我查看了Leave但是当ToolStrips本身有那个事件时,显然ToolStripDropDownButton没有.
最好的方法是什么?
事实证明,这是一种非常简单的方法,我还没有意识到这一点.该Closing事件说明了为什么ToolStripDropDownButton关闭,其中一个原因是点击了一个项目.
ToolStripDropDownButton直接没有Closing事件,但因为它只是一个包装器,ToolStripDropDown它确实暴露了通过ToolStripDropDownButton.DropDown.Closing
所以我只是做了以下事情:
toolStripDropDownButton1.DropDown.Closing += toolStripDropDownButton1_Closing;
private void toolStripDropDownButton1_Closing(object sender, ToolStripDropDownClosingEventArgs e)
{
if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked)
{
e.Cancel = true;
}
}
Run Code Online (Sandbox Code Playgroud)
这样我只会在单击某个项目时阻止它被关闭,但是如果用户点击该项目之外ToolStripDropDownButton或者如果它失去焦点,则不会阻止它关闭.
| 归档时间: |
|
| 查看次数: |
869 次 |
| 最近记录: |