0

我已经制作了一些代码来在菜单项中显示每台已安装和在线的打印机。但是我不知道如何在单击菜单项时引发事件。我删除了获取打印机名称的代码,因为那现在不相关了。

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.

通常您应该能够向菜单项添加事件;但我是通过代码创建的,我不知道确切的名称。如何检测何时单击菜单项?

4

2 回答 2

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
    }
于 2012-09-26T07:56:01.673 回答
0

比挂钩您的 selectprinterNameMenuItem 的 ItemClicked。

selectprinterNameMenuItem.DropDownItemClicked += new ToolStripItemClickedEventHandler(xyz);

找出导致事件触发的项目。

于 2012-09-26T08:08:19.257 回答