В DataGridView
(C# WinForm app) Я запрограммировал, если выбрана строка и вы щелкаете правой кнопкой мыши на RowHeader
, отображается ContextMenuStrip
. Это означало, что ContextMenuStrip
может отображаться только в том случае, если вы нажмете только на RowHeader
:
private void myDataGridView_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right && e.RowIndex > -1)
{
if (myDataGridView.Rows[e.RowIndex].Selected == true)
{
if (myDataGridView.Rows[e.RowIndex].HeaderCell.ColumnIndex == e.ColumnIndex)
{
DataGridView ctrl = (DataGridView)sender;
ctrl.ContextMenuStrip = this.cmsBrisiPrekinitev;
ctrl.ContextMenuStrip.Show(e.Location);
}
}
}
}
Теперь, при выборе первой строки и щелчке правой кнопкой мыши на RowHeader
все работает нормально, но после что ContextMenuStrip
отображается независимо от того, где внутри DataGridView
я делаю щелчок правой кнопкой мыши и не могу поймать какое-либо событие. Событие для щелчка левой кнопкой мыши вызывается правильно.
Как можно избежать этого ContextMenuStrip
показа и что может быть причиной для этого?