我正在尋找一種方法來啓用/禁用按鈕使用他們的ContextMenu
。但我的問題是,當我點擊啓用MenuItem
禁用按鈕ContextMenu
不會再顯示。在禁用控件上的ContextMenu,如按鈕
有沒有辦法在禁用的控件上保留ContextMenu
或其他行爲?
ContextMenu cm = new ContextMenu();
cm.MenuItems.Add("Enable", new EventHandler(enableButton));
this.button1.ContextMenu = cm;
private void enableButton(object sender, EventArgs e)
{
MenuItem menuItem = sender as MenuItem;
if (menuItem != null)
{
ContextMenu menu = menuItem.GetContextMenu();
Control sourceControl = menu.SourceControl;
sourceControl.Enabled = !sourceControl.Enabled;
}
}
使自己的禁用功能,設置按鈕變灰,攔截它們的事件,這樣按鈕將顯示爲禁用狀態,但能夠接收ContextMenu事件。這種行爲是「By-Design」 –
即使有可能,這也是一個糟糕的設計,因爲沒有人會嘗試右鍵單擊禁用控件。唯一可能有點合理的情況是UI設計師。 – Phil1970