2012-09-26 21 views
0

我已經制作了一些代碼來顯示在菜單項中安裝和聯機的每臺打印機。但是當菜單項被點擊時,我無法確定如何提升事件。我刪除了獲取printernames的代碼,因爲那些代碼現在不相關。如何在變量tooltrip菜單項C上創建事件#

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

您在代碼完成中看到哪些事件與聲音有關,或者您可以在設計器中查看事件..那麼,您將知道它的調用方式以及如何使用它。 – BugFinder

+0

你的意思是說,你不知道打印機的名稱,以確定哪些被點擊?你可以將它存儲在列表中(或者甚至只是將名稱從控件中取出) – HaemEternal

回答

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 

編輯:您可以將事件處理程序添加到該對象

你可以告訴大家一直使用傳遞給事件處理程序發件人的說法,即點擊打印機名稱:

void printerName_Click(object sender, EventArgs e) 
    { 
     ToolStripItem item = (ToolStripItem)sender; 
     string printerClicked = item.Text; 

     // whatever you want based on the printerName 
    } 
+0

謝謝。這幫助了我一點。但這種方式並不重要你選擇哪臺打印機。所有人都會舉起同樣的事件,有沒有簡單的方法來防止這種情況發生?如果沒有,我會寫一些額外的行代碼來解決這個問題 – 2pietjuh2

+0

看看我的編輯 –

0

比鉤選您選擇的打印機名稱菜單項。

selectprinterNameMenuItem.DropDownItemClicked += new ToolStripItemClickedEventHandler(xyz); 

在那裏找出導致事件發生的事件。

相關問題