2009-08-20 52 views
0

嗨大家,開啓事件後ContextMenuStrip打開的事件不會觸發

我有一個UserControl,並附帶了ContextMenuStrip。

我想顯示ContextMenu基於哪個對象被點擊在控件的表面上。

問題是,在第一次啓動時,當我右鍵單擊控件的表面時,contextMenuStrip不顯示!

我在contextMenuStrip_opening和contextMenuStrip_opened事件中設置了斷點,但似乎只有contextMenuStrip_opening被觸發。

發生了什麼事?

在什麼情況下contextMenuStrip不顯示?

請幫忙。

回答

0

如果症狀是ContextMenuString不顯示在所有的,我敢打賭,你的代碼分配trueOpening事件處理程序e.Cancel財產。

如果菜單顯示,但未調用Opened事件處理程序,我的猜測是Opened事件的事件處理程序由於某種原因未附加。

1

我沒有做標記e.Cancel = true或不分配控件等事情。如果是這樣,我通過調試進行了嘗試。

我不知道爲什麼,但我添加e.Cancel = false在ContextMenuStrip_Opening事件處理程序的開始,然後它工作正常。

+0

哇,我起初並不相信,但如果你設置即取消爲false它確實有效,這已經讓我煩惱了好幾天。 – jamier 2012-08-30 21:22:31

1

我遇到了一些問題,用戶控件,但e.Cancel =虛假不工作對我來說

我下次使用

private void itemMenu_Opened(object sender, EventArgs e) 
    { 
     this.itemMenu.Focus(); 
    }