在一个winfrom窗体中有一个DataGridView。在窗体没有加载数据的时候点击右键会显示ContextMenuStrip菜单。
怎么样才能在点击右键的时候先判断DataGridView是否已经加载了数据,如果没数据的话不显示ContextMenuStrip菜单?
下面我判断数据是否绑定没有起作用,请问应该怎么写才对? private void dgvSingerList_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (dgvSingerList.DataSource == null)
return;
if (e.Button == MouseButtons.Right)
{
if (e.RowIndex >= 0)
{
dgvSingerList.ClearSelection();
dgvSingerList.Rows[e.RowIndex].Selected = true;
cmsMenu.Show(MousePosition.X,MousePosition.Y);
}
}
}
怎么样才能在点击右键的时候先判断DataGridView是否已经加载了数据,如果没数据的话不显示ContextMenuStrip菜单?
下面我判断数据是否绑定没有起作用,请问应该怎么写才对? private void dgvSingerList_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (dgvSingerList.DataSource == null)
return;
if (e.Button == MouseButtons.Right)
{
if (e.RowIndex >= 0)
{
dgvSingerList.ClearSelection();
dgvSingerList.Rows[e.RowIndex].Selected = true;
cmsMenu.Show(MousePosition.X,MousePosition.Y);
}
}
}
解决方案 »
- C#如何将comboBox中的值取出实现计算
- 【快来帮帮我】:关于Windows服务程序的属性问题
- 水晶报表设计票据的问题
- 求类似www.vafox.com www.taoxie.cn的源码
- 验证DropDownList,选择的是不是请选择这一项目
- 如果截取字符串,或货币型小数点后两位
- socket实现局域网内多人聊天,假定不知道其它机器ip,一台机器登录的时候如何判断还有那台机器当前已经登录
- C#编写屏幕保护程序
- C# WinForm 快速入门
- Styles.Render索引超出了数组界限的问题弄好了好久没有解决
- 一个类的属性,我们可以通过 对象.属性=“属性值”; 对属性进行赋值, 可是,要是我知道这个对象,还知道一个变量,这个变量的值就是这个对象的属性名,怎么进
- 怎样获取远程服务器的数据库名?
private void dataGridView1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
if(dataGridView1.DataSource==null)
{
contextMenuStrip1.Visible = false; //隐藏右击菜单
}
}
}
可以里面添加你的判断逻辑,将事件参数CancelEventArgs.Cancel设置为true,表示不打开菜单private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{
//代码逻辑
e.Cancel = true; //不打开菜单
}
{
_IsHitInRow = hi.InRow; if (dataGridView1.SelectedRows.Count==0)
{
this.dataGridView1.ContextMenuStrip = null;
return;
}
else
{
dataGridView1.ContextMenuStrip = contextMenuStrip1;
}
}
ds=DBHelper.GetDataset();
int flag=ds.table[0].rows.count;
然后在判断flag
if(flag<=0)
{
messagebox.show("不存在数据");
}
else
{
contextMenuStrip.Enable=true;//当然,首先要先把Enable属性默认为false
}