我已经制作了一些代码来显示菜单项中安装和联机的每台打印机。但是,当单击菜单项时,我无法确定如何引发事件。我删除了获取printernames的代码,因为这与现在不相关。
string printerName; // contains the first printer name, later contains 2nd printername. This is variable.
selectprinterNameMenuItem.DropDownItems.Add(printerName); // here do I add the new printer to the menu item.
通常你应该能够在菜单项中添加一个事件;但我是用代码创建的,我不知道确切的名字。如何检测菜单项何时被点击?
答案 0 :(得分:1)
Add(String)
ToolStripItemCollection
方法会返回已创建的ToolStripItem
。您可以将事件处理程序添加到此对象:
string printerName; // contains the first printer name, later contains 2nd printername. This is variable.
ToolStripItem addedItem = selectprinterNameMenuItem.DropDownItems.Add(printerName); // here do I add the new printer to the menu item.
addedItem.Click += new EventHandler(printerName_Click); // here you register to the click event
编辑(根据您的评论):
您可以使用传递给事件处理程序的sender参数来告知已单击的打印机名称,即:
void printerName_Click(object sender, EventArgs e)
{
ToolStripItem item = (ToolStripItem)sender;
string printerClicked = item.Text;
// whatever you want based on the printerName
}
答案 1 :(得分:0)
挂钩selectprinterNameMenuItem的ItemClicked。
selectprinterNameMenuItem.DropDownItemClicked += new ToolStripItemClickedEventHandler(xyz);
找出导致事件发生的事件。