2008-09-17 64 views
2

我正在以編程方式將ToolStripButton項目添加到上下文菜單。如何以編程方式在C#中連接ToolStripButton事件?

這部分很簡單。

this.tsmiDelete.DropDownItems.Add("The text on the item."); 

但是,我還需要連接事件,以便當用戶單擊該項目實際發生的事情!

我該怎麼做?處理點擊的方法還需要接收某種與用戶點擊的特定ToolStripButton相關的id或對象。

回答

3

難道你只是訂閱Click事件?事情是這樣的:

ToolStripButton btn = new ToolStripButton("The text on the item."); 
this.tsmiDelete.DropDownItems.Add(btn); 
btn.Click += new EventHandler(OnBtnClicked); 

而且OnBtnClicked會聲明如下:

private void OnBtnClicked(object sender, EventArgs e) 
{ 
    ToolStripButton btn = sender as ToolStripButton; 

    // handle the button click 
} 

發送者應該是ToolStripButton,這樣你就可以施放它,做任何你需要做的事。

0

感謝您對安迪的幫助。我現在唯一的問題是AutoSize不適用於我添加的ToolStripButtons!他們太狹窄了。

這很奇怪,因爲它工作得更早。


更新:對於以編程方式創建的ToolStripButtons,AutoSize肯定有問題。但是,我發現了一個解決方案:

  1. 創建ToolStripButton。
  2. 創建一個標籤控件並設置字體屬性以匹配您的按鈕。
  3. 設置標籤的文字以匹配您的按鈕。
  4. 將標籤設置爲AutoSize。
  5. 讀取標籤的寬度並使用它來設置ToolStripButton的寬度。

這是hacky,但它的工作原理。

相關問題