DataGridView의 빈 부분을 마우스 오른쪽 버튼으로 클릭하면 (행이없는 눈금 부분을 클릭하면) 상황에 맞는 메뉴가 여전히 행 기반 옵션과 함께 나타납니다 . 클릭이 한 행 위로 넘어갈 때 문맥 메뉴 만 나타나게하려면 어떻게해야합니까?DataGrid의 빈 부분을 클릭 할 때 컨텍스트 메뉴가 나타나지 않도록합니다.
이것은 지금까지 내가 입수했습니다과 같습니다
private void f_context_select_row(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
var hti = jobs_datagrid.HitTest(e.X, e.Y);
if (hti.RowIndex >= 0)
{
jobs_datagrid.ClearSelection();
jobs_datagrid.Rows[hti.RowIndex].Selected = true;
}
else
{
//what can I do here to collapse the context menu?
}
}
}
내가 프로그래밍 방식으로이 같은 데이터 격자 및 상황에 맞는 메뉴 건물입니다 :
//on right click select row
jobs_datagrid.MouseDown += new MouseEventHandler(f_context_select_row);
//generate context menu
ContextMenuStrip m = new ContextMenuStrip();
ToolStripMenuItem context_datagrid_run = new ToolStripMenuItem("Run All Selected Campaigns");
ToolStripMenuItem context_datagrid_edit = new ToolStripMenuItem("Edit This Campaign");
ToolStripMenuItem context_datagrid_delete = new ToolStripMenuItem("Delete This Campaign");
context_datagrid_delete.Click += f_context_datagrid_delete;
context_datagrid_run.Click += f_run_selected_campaigns;
context_datagrid_edit.Click += f_context_datagrid_edit;
m.Items.Add(context_datagrid_delete);
m.Items.Add(context_datagrid_run);
m.Items.Add(context_datagrid_edit);
jobs_datagrid.ContextMenuStrip = m;
splitContainer3.Panel2.Controls.Add(jobs_datagrid);
어디서 [ContextMenu] Show() 메서드를 호출하고 있습니까? –
컨텍스트 메뉴를 작성하는 방법에 대한 자세한 정보를 표시하도록 질문을 업데이트했습니다. 나는 어디서나 .show 이벤트가 있다고 생각하지 않는다. 저는 Visual C# Express로 작업하고 있습니다. – atwellpub