簡體   English   中英

如何將相同的ToolStripButtons添加到ContextMenuStrip和ToolStrip?

[英]How to add to ContextMenuStrip and ToolStrip same ToolStripButtons?

我的應用程序和上下文菜單中的工具欄具有相同的選項,因此我想將ToolStripButtons添加到ContextMenuStrip和ToolStrip中,不幸的是,我無法做到這一點。 即使當我手動向兩者添加項目時,它也僅顯示在一個項目上。

現在,我在工具欄中有一些按鈕:

我想要這樣的東西。 我希望此選項成為一個選項,因為我經常會啟用和禁用此按鈕,最后只有一個選項,那么為什么要兩個按鈕呢?

這是一個常見問題,我發現最簡單的解決方案是將“共享”代碼放在從ToolStripMenuItem繼承的MenuFeature類中。

您仍然必須創建該類的2個實例,但是每個實例非常輕巧,並且僅具有針對這兩種用法的任何區別的代碼(即ContextMenu項可能使用ToolStripItemDisplayStyle.ImageAndText ,而ToolStrip項可能使用ToolStripItemDisplayStyle.Image )。

這允許公用代碼在您的自定義MenuFeature類內部僅存在一次,但仍允許針對此菜單項的每次使用進行局部更改。

如果要自動同步Enabled / Visible / etc等屬性,則可以維護構造函數中所有實例的靜態集合,然后使用EnabledChanged / etc等事件更新所有項目。 但是,我建議您與此相反,因為我發現同一菜單“功能”的不同實例經常需要它們自己的狀態-但這超出了本課題的范圍,那些對我如何管理項目感興趣的人可以發表評論在這個答案或下午我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM