2016-03-15 36 views
0

我在我的winform上有一個DataGridView,我顯示了5列和幾行,我想添加一個功能,如果我右鍵單擊任何行向我顯示一個菜單以查看有關該記錄的更多詳細信息。 但我得到一個錯誤,當我寫這e.ButtonSystem.EventArgs不包含按鈕的定義 - C#

System.EventArgs不包含按鍵的定義,並沒有擴展方法按鈕接受類型System.EventArgs的第一個參數可以找到(是否缺少任何指令或程序集引用?)

enter image description here

+1

按鈕位於MouseEventArgs中。 請參閱:http://stackoverflow.com/questions/19448346/how-to-get-a-right-click-mouse-event-changing-eventargs-to-mouseeventargs-cause –

回答

2

MouseClick事件DataGridView實際上提供了一個MouseEventArgs參數。您只用EventArgs宣佈您的datagridview1_MouseClick方法。

,要

protected void datagridview1_MouseClick(object sender, MouseEventArgs e) 
{ 
    if (e.Button == ... 

,它應該工作變化(如果你使用CellMouseClick代替MouseClick,使用DataGridViewCellMouseEventArgs代替MouseEventArgs)。


作爲一個方面說明:你沒有得到,當你添加「錯誤地」聲明的處理像datagridview1.MouseClick += datagridview1_MouseClick,因爲MouseEventArgsEventArgs派生,所以編譯器具有與分配對象沒有問題的編譯錯誤。當您嘗試通過e訪問MouseEventArgs實例的屬性時出現問題,e被聲明爲EventArgs,因爲EventArgs不知道MouseEventArgs衍生物的屬性。


P.S:請發表您的代碼作爲文字到您的下一個問題。對於我們來說,閱讀或再利用來重現錯誤比圖像更好。在該圖像中,我看不到您使用的是MouseClick還是CellMouseClick事件

+0

它是'MouseClick',但您的答案爲我工作(Y)。感謝您的解釋。 –

相關問題