2010-02-04 74 views
0

我想要在右擊發生在特定窗體對象上的座標上顯示contextmenustrip對象。我迷上了表單CellMouseClick事件,我可以接收事件的X,Y值,但它們似乎與該特定控件相關。例如,如果我使用contextmenu.Show(e.X,e.Y),它將顯示在屏幕的頂部角落,而不是鼠標在該窗體上的位置。C#和窗體上的位置

我該如何實現我期待的目標?如果它有幫助,我掛鉤的表單控件是DataGridView。

回答

2

DataGridView有一個ContextMenu屬性,您可以使用它。

0

你需要檢查左側和頂部性質

x + control.left 
y + control.top 
2

我只想設置在DataGridView您的ContextMenuStrip的ContextMenuStrip property,那麼它總是會出現在您的網格上單擊鼠標右鍵。

您可以在代碼中以及在設計器的屬性窗口中設置它。

1

試試下面的代碼:

ContextMenuStrip myMenuStrip = new ContextMenuStrip(); 
myMenuStrip.Show(myDataGrid , new Point(0 , 0)); 

和一個ContextMenu:

ContextMenu myMenu = new ContextMenu(); 
myMenu.Show(myDataGrid , new Point(e.X , e.Y));