none
如何針對Toolstrip上的項目設計內容功能表? RRS feed

  • 問題

  • 請問各位大大

    要如何設計在Toolstrip上的每個項目按右鍵時都會出現各自的內容功能表呢?

    我知道如果是整個Toolstrip按右鍵的內容功能表是設定在 ContentMenuStrip屬性上

    但是我是想設計在每個項目上,可以做得到嗎?觸發的事件又是什麼呢?

    麻煩大大們幫我解答一下,謝謝^^

    2006年8月16日 上午 06:42

解答

  • Dear shallywu:

    最簡單的方式,便是

    1. 先各自定義要產生的內容功能表,即不同的contextMenuStrip
    2. 在不同的toolStripButton的MouseEnter事件時,重新定義ToolStrip的ContextMenuStrip的contextMenuStrip物件
    3. 切記在離開時,要把ToolStrip.ContextMenuStrip = null;

    範例如下:

    1. 先在畫面上,拖出三個contextMenuStrip物件,分別命名:contextMenuStrip1, contextMenuStrip2, contextMenuStrip3
    2. 分別定義這三個contextMenuStrip的內容
    3. 在畫面上,拖出ToolStrip,預設命名toolStrip1,並建立三個按鈕,使用預設命名,分別是:toolStripButton1, toolStripButton2, toolStripButton3
    4. 分別在這三個按鈕的MouseEnter Event中,撰寫程式碼,如下:
              private void toolStripButton1_MouseEnter(object sender, EventArgs e)
              {
                  this.toolStrip1.ContextMenuStrip = this.contextMenuStrip1;
              }
              private void toolStripButton2_MouseEnter(object sender, EventArgs e)
              {
                  this.toolStrip1.ContextMenuStrip = this.contextMenuStrip2;
              }
              private void toolStripButton3_MouseEnter(object sender, EventArgs e)
              {
                  this.toolStrip1.ContextMenuStrip = this.contextMenuStrip3;
              }
    2006年8月16日 下午 06:40

所有回覆

  • Dear shallywu:

    最簡單的方式,便是

    1. 先各自定義要產生的內容功能表,即不同的contextMenuStrip
    2. 在不同的toolStripButton的MouseEnter事件時,重新定義ToolStrip的ContextMenuStrip的contextMenuStrip物件
    3. 切記在離開時,要把ToolStrip.ContextMenuStrip = null;

    範例如下:

    1. 先在畫面上,拖出三個contextMenuStrip物件,分別命名:contextMenuStrip1, contextMenuStrip2, contextMenuStrip3
    2. 分別定義這三個contextMenuStrip的內容
    3. 在畫面上,拖出ToolStrip,預設命名toolStrip1,並建立三個按鈕,使用預設命名,分別是:toolStripButton1, toolStripButton2, toolStripButton3
    4. 分別在這三個按鈕的MouseEnter Event中,撰寫程式碼,如下:
              private void toolStripButton1_MouseEnter(object sender, EventArgs e)
              {
                  this.toolStrip1.ContextMenuStrip = this.contextMenuStrip1;
              }
              private void toolStripButton2_MouseEnter(object sender, EventArgs e)
              {
                  this.toolStrip1.ContextMenuStrip = this.contextMenuStrip2;
              }
              private void toolStripButton3_MouseEnter(object sender, EventArgs e)
              {
                  this.toolStrip1.ContextMenuStrip = this.contextMenuStrip3;
              }
    2006年8月16日 下午 06:40
  • 感謝 Kevin 大大的熱心解答^^
    2006年8月17日 上午 01:57