2
我在Windows窗體中使用了toolstripdropdown來顯示另一個按鈕的單擊按鈕列表。C#Winfoms Toolstripdropdown關閉按鈕單擊
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都會關閉。還行吧。
我的要求:
- 點擊查看按鈕
- 顯示toolstripdropdown通過調用td.show()並關閉彈出窗口,如果
td.Visible
- 再次單擊顯示按鈕
- toolstripdrown應該被關閉
- 單擊表格中的任意位置,如果可見,則應關閉toolstripdropdown
現在發生的情況是,在步驟3中,在按鈕單擊事件發生之前,toolstripdropdown正在關閉。所以再次顯示下拉菜單。
有沒有其他辦法可以達到我的要求?
優秀...「this.button1。 Bounds.Contains(this.PointToClient(MousePosition))「這是我錯過的路線。非常感謝....你拯救了我的一天.... – Rocky
不客氣@Rocky。 –