我正在以編程方式將ToolStripButton項目添加到上下文菜單。如何以編程方式在C#中連接ToolStripButton事件?
這部分很簡單。
this.tsmiDelete.DropDownItems.Add("The text on the item.");
但是,我還需要連接事件,以便當用戶單擊該項目實際發生的事情!
我該怎麼做?處理點擊的方法還需要接收某種與用戶點擊的特定ToolStripButton相關的id或對象。
我正在以編程方式將ToolStripButton項目添加到上下文菜單。如何以編程方式在C#中連接ToolStripButton事件?
這部分很簡單。
this.tsmiDelete.DropDownItems.Add("The text on the item.");
但是,我還需要連接事件,以便當用戶單擊該項目實際發生的事情!
我該怎麼做?處理點擊的方法還需要接收某種與用戶點擊的特定ToolStripButton相關的id或對象。
難道你只是訂閱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,這樣你就可以施放它,做任何你需要做的事。
感謝您對安迪的幫助。我現在唯一的問題是AutoSize不適用於我添加的ToolStripButtons!他們太狹窄了。
這很奇怪,因爲它工作得更早。
更新:對於以編程方式創建的ToolStripButtons,AutoSize肯定有問題。但是,我發現了一個解決方案:
這是hacky,但它的工作原理。