我想要在右擊發生在特定窗體對象上的座標上顯示contextmenustrip對象。我迷上了表單CellMouseClick事件,我可以接收事件的X,Y值,但它們似乎與該特定控件相關。例如,如果我使用contextmenu.Show(e.X,e.Y),它將顯示在屏幕的頂部角落,而不是鼠標在該窗體上的位置。C#和窗體上的位置
我該如何實現我期待的目標?如果它有幫助,我掛鉤的表單控件是DataGridView。
我想要在右擊發生在特定窗體對象上的座標上顯示contextmenustrip對象。我迷上了表單CellMouseClick事件,我可以接收事件的X,Y值,但它們似乎與該特定控件相關。例如,如果我使用contextmenu.Show(e.X,e.Y),它將顯示在屏幕的頂部角落,而不是鼠標在該窗體上的位置。C#和窗體上的位置
我該如何實現我期待的目標?如果它有幫助,我掛鉤的表單控件是DataGridView。
DataGridView有一個ContextMenu屬性,您可以使用它。
你需要檢查左側和頂部性質
x + control.left
y + control.top
我只想設置在DataGridView您的ContextMenuStrip的ContextMenuStrip property,那麼它總是會出現在您的網格上單擊鼠標右鍵。
您可以在代碼中以及在設計器的屬性窗口中設置它。
試試下面的代碼:
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));