2013-06-01 123 views
0

我有這個編程添加到ToolStripMenuItem的DropDownButton。當我點擊它時,我想讓它觸發一個事件,但它不會在Event塊內做任何事情。請查看此代碼並評論我做錯了什麼。DropDownItemClick事件沒有觸發

感謝

private void privateChatToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
    Icon icon1 = new Icon(Assembly.GetExecutingAssembly().GetManifestResourceStream("Chat_NET_Client.pm.ico")); 
    Bitmap bmp = icon1.ToBitmap(); 
    ToolStripMenuItem item = new ToolStripMenuItem(listView1.SelectedItems[0].Text, bmp); 
    item.DropDownItemClicked += item_Click; 
    chatsToolStripMenuItem.DropDownItems.Add(item); 
} 

void onClick(object sender, ToolStripItemClickedEventArgs e) 
{ 
    inPM = true; 
    txtLog.Visible = false; 
    pmBox.Visible = true; 
    mainToolStripMenuItem1.Enabled = true; 
    pmBox.Clear(); 
    curPM = e.ClickedItem.Text; 

    Invoke(new _appendLog(appendLog), "STARTING PM :D"); 
    using (StreamReader r = new StreamReader(appData + "\\" + e.ClickedItem.Text + ".dat")) 
    { 
     string line; 

     while (r.ReadLine() != null) 
     { 
      line = r.ReadLine(); 
      pmBox.AppendText(line + Environment.NewLine); 
      pmBox.ScrollToCaret(); 
     } 
    } 
} 

最後說明: 下拉項目沒有獲得創建和加入,問題是,當點擊它時,它不會觸發事件!

回答

1

你打電話錯誤的事件,我認爲。做如下

item.DropDownItemClicked += item_Click; 

變化

item.DropDownItemClicked += onClick; 
1

那麼在這裏在這條線:

item.DropDownItemClicked += item_Click; 

你的DropDownItem綁定到不同的事件item_Click: 要麼重新命名您的活動或者只是將其綁定到正確的一個:

void item_Click(object sender, ToolStripItemClickedEventArgs e) 
{ 
    // do your stuff 
} 
+0

謝謝你的回答!但是,它仍然不會着火.... – Daaksin

+0

您是否重命名事件處理程序? –

+0

是的,我已經嘗試過每個解決方案 – Daaksin

1

有同樣的問題。您需要通過ToolStripMenuItem的構造函數傳遞處理函數。