我正在以编程方式将ToolStripButton项添加到上下文菜单中。
这部分很容易。
this.tsmiDelete.DropDownItems.Add("The text on the item.");
但是,我还需要连接事件,以便当用户点击该项时实际发生的事情!
我该怎么做?处理点击的方法还需要接收某种与用户点击的特定ToolStripButton相关的id或对象。
答案 0 :(得分: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,因此您可以投射它并做任何您需要做的事情。
答案 1 :(得分:0)
感谢你对Andy的帮助。我现在唯一的问题是AutoSize不能处理我正在添加的ToolStripButtons!他们都太狭隘了。
这很奇怪,因为它提前工作了。
更新:对于以编程方式创建的ToolStripButtons,AutoSize肯定存在问题。但是,我找到了一个解决方案:
这很黑,但它确实有效。