我的工具欄在我的應用程序和上下文菜單中使用相同的選項,所以我想 添加ToolStripButtons雙方的ContextMenuStrip和ToolStrip的,不幸的是我不能做到這一點。 即使我手動添加項目,它只顯示一個。如何添加到ContextMenuStrip和ToolStrip相同的ToolStripButtons?
現在我有按鈕工具欄:
我想是這樣的。我想這個選項是一個,因爲我會經常啓用和禁用這個按鈕,最後有一個選項,爲什麼兩個按鈕?
我的工具欄在我的應用程序和上下文菜單中使用相同的選項,所以我想 添加ToolStripButtons雙方的ContextMenuStrip和ToolStrip的,不幸的是我不能做到這一點。 即使我手動添加項目,它只顯示一個。如何添加到ContextMenuStrip和ToolStrip相同的ToolStripButtons?
現在我有按鈕工具欄:
我想是這樣的。我想這個選項是一個,因爲我會經常啓用和禁用這個按鈕,最後有一個選項,爲什麼兩個按鈕?
這是一個普遍的問題,我已經找到了最簡單的方法是將一個MenuFeature
類,從ToolStripMenuItem
繼承裏面的「共享」的代碼。
您仍然必須創建此類的兩個實例,但每個實例都非常輕量級,並且只有兩種用法之間存在任何差異的代碼(即ContextMenu項可能使用ToolStripItemDisplayStyle.ImageAndText
,而ToolStrip項可能使用ToolStripItemDisplayStyle.Image
)。
這使得通用代碼來定製MenuFeature
類中只有一次的存在,但仍允許改變本地此菜單項的每個使用。
如果你想要像Enabled
/Visible
/等自動同步特性,你可以保持在構造函數中的所有實例的靜態集合,然後使用像EnabledChanged
/等事件更新的所有項目。然而,我會建議反對這個,因爲我發現同一個菜單的不同實例'功能'往往需要他們自己的狀態 - 但是這個問題已經超出了這個問題的範圍,那些對我如何管理項目感興趣的人可以評論在這個答案或下午我。
如果門不是動態的,你可以簡單地separatly建立2比作fonction到syncronize他們 –
我只是做項目手動禁用:toolStripItem1.Disabled = TRUE; contextStripItem1.Disabled = true;對於我現在所有的物品。 –
然後我真的沒有看到問題。你仍然可以讓相同的按鈕具有相同的事件處理程序,所以兩者都會做同樣的事情 –