在dataGridView中点右键弹出菜单,菜单位置怎么控制?
我的dataGridView的选中方式为:FullRowsSelect
程序为:
private void dataGridView_CellMouseDown(object sender,DataGridViewCellMouseEventArgs e)
{
if(e.button==MouseButton.Right && e.ColumnIndex > -1 && e.RowIndex > -1)
{
dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Select=true;
ContextMenu con = new ContextMenu ();
MenuItem Add_user = new MenuItem Add_user ("添加");
MenuItem menuLine1_user= new MenuItem ("_");
MenuItem Update_user = new MenuItem Add_user ("修改");
MenuItem menuLine2_user= new MenuItem ("_");
MenuItem Delete_user = new MenuItem Add_user ("删除"); Add_user.Click += new EventHandler(this.Add_user_click_ToolStripMenuItem_Click);
Update_user.Click += new EventHandler(this.Update_user_click_ToolStripMenuItem_Click);
Delete_user.Click += new EventHandler(this.Delete_user_click_ToolStripMenuItem_Click);
con.MenuItems.Add(Add_user);
con.MenuItems.Add(menuLine1_user);
con.MenuItems.Add(Update_user);
con.MenuItems.Add(menuLine2_user);
con.MenuItems.Add(Delete_user);
this.dataGridView.ContextMenu = con;
con.Show(dataGridView,new point(e.X,e.Y));//就是这句,菜单都是乱蹦的!怎么控制啊? }
}
我的dataGridView的选中方式为:FullRowsSelect
程序为:
private void dataGridView_CellMouseDown(object sender,DataGridViewCellMouseEventArgs e)
{
if(e.button==MouseButton.Right && e.ColumnIndex > -1 && e.RowIndex > -1)
{
dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Select=true;
ContextMenu con = new ContextMenu ();
MenuItem Add_user = new MenuItem Add_user ("添加");
MenuItem menuLine1_user= new MenuItem ("_");
MenuItem Update_user = new MenuItem Add_user ("修改");
MenuItem menuLine2_user= new MenuItem ("_");
MenuItem Delete_user = new MenuItem Add_user ("删除"); Add_user.Click += new EventHandler(this.Add_user_click_ToolStripMenuItem_Click);
Update_user.Click += new EventHandler(this.Update_user_click_ToolStripMenuItem_Click);
Delete_user.Click += new EventHandler(this.Delete_user_click_ToolStripMenuItem_Click);
con.MenuItems.Add(Add_user);
con.MenuItems.Add(menuLine1_user);
con.MenuItems.Add(Update_user);
con.MenuItems.Add(menuLine2_user);
con.MenuItems.Add(Delete_user);
this.dataGridView.ContextMenu = con;
con.Show(dataGridView,new point(e.X,e.Y));//就是这句,菜单都是乱蹦的!怎么控制啊? }
}
解决方案 »
- C#新手
- WinForm的DataGridView焦点并没有离开该Cell更新失败
- 在GridView的HyperLinkField、BoundField或者ButtonField如何激发onClick事件
- class struct
- 请问如何在<iframe>中动态加入链接
- 高手请进!关于DataSet的问题!!在线等!!解决问题就给分
- 泛型使用问题---以及权限模型的在线用户列表方案探讨
- 求助 如何根据dataset在数据库里面自动生成表
- 如何生成高质量的缩小图
- 数据库的连接与内容的显示
- 使用urlrouting时,应用ajax web service
- DataBinding:“System.Data.DataRowView”不包含名为“issh”
我想让菜单弹出在鼠标所点的位置
用ContextMenuStrip控件 , private void dgvList_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
if (e.RowIndex >= 0)
{ if (dgvList.Rows[e.RowIndex].Selected == false)
{
dgvList.ClearSelection();
dgvList.Rows[e.RowIndex].Selected = true;
}
if (dgvList.SelectedRows.Count == 1 && e.ColumnIndex != -1)
{
dgvList.CurrentCell = dgvList.Rows[e.RowIndex].Cells[e.ColumnIndex];
}
dgvList.ContextMenuStrip = contextMenuStrip1;
} else
{
dgvList.ContextMenuStrip = null;
return;
}
}
}