+ -
当前位置:首页 → 问答吧 → 怎样让右键ContextMenuStrip菜单显示前先判断DataGridView是否绑定了数据?

怎样让右键ContextMenuStrip菜单显示前先判断DataGridView是否绑定了数据?

时间:2011-12-08

来源:互联网

在一个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);
  }
  }
  }

作者: sobigfat   发布时间: 2011-12-08

C# code

        private void dataGridView1_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                if(dataGridView1.DataSource==null)
                {
                    contextMenuStrip1.Visible = false;  //隐藏右击菜单
                }
            }
        }

作者: wnyxy   发布时间: 2011-12-08

ContextMenuStrip有一个Opening事件,表示打开菜单的时候
可以里面添加你的判断逻辑,将事件参数CancelEventArgs.Cancel设置为true,表示不打开菜单
C# code

private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{
    //代码逻辑
    e.Cancel = true;        //不打开菜单
}


作者: sdfkfkd   发布时间: 2011-12-08

C# code
   private void gvList_MouseDown(object sender, MouseEventArgs e)
        {
            _IsHitInRow = hi.InRow;

            if (dataGridView1.SelectedRows.Count==0)
            {
                this.dataGridView1.ContextMenuStrip = null;
                return;
            }
            else
            {
                dataGridView1.ContextMenuStrip = contextMenuStrip1;
}
}

作者: happy09li   发布时间: 2011-12-08

你用dataset做数据源的话,那你就实例化一个dataset ds=new datase();
ds=DBHelper.GetDataset();
int flag=ds.table[0].rows.count;
然后在判断flag
if(flag<=0)
{
messagebox.show("不存在数据");
}
else
{
contextMenuStrip.Enable=true;//当然,首先要先把Enable属性默认为false
}

作者: gui_sir814   发布时间: 2011-12-08

3楼的简单。

作者: zdzcool   发布时间: 2011-12-08