我在我的 Windows 表单中使用了 tooltripdropdown 来显示单击另一个按钮时的按钮列表。
var td = new ToolStripDropDown
{
AutoSize = true,
DropShadowEnabled = false,
BackColor = Color.Transparent,
Margin = Padding.Empty,
Padding = Padding.Empty
};
var host = new ToolStripControlHost(panel)
{
BackColor = Color.Transparent,
Margin = Padding.Empty,
Padding = Padding.Empty
};
td.Items.Add(host);
面板包含要显示的按钮列表。要向用户显示面板,请在按钮(显示)上单击以下行。
td.Show(pointonScreen);
默认情况下,AutoClose
设置为 true。因此,每当用户单击表单中的任何位置时,toolstripdropdown 都会关闭。还行吧。
我的要求:
- 单击显示按钮
- 通过调用 td.show() 显示工具条下拉菜单并关闭弹出窗口
td.Visible
- 再次单击显示按钮
- toolstripdown 应该关闭
- 单击表单中的任意位置,toolstripdropdown 如果可见则应关闭
现在发生的事情是,在第 3 步中,在引发按钮单击事件之前,toolstripdropdown 正在关闭。所以再次显示下拉菜单。
有没有其他方法可以达到我的要求?