小弟初学C# 最近做个东西 要用到datagridview 所以来着问下大家这该怎么弄呃?

解决方案 »

  1.   

    datagridview有cellclick事件可以给你判断是否点到单元格,点到了就会触发,至于右键菜单,你可以添加上下文菜单控件,然后显示这个控件
      

  2.   

    代码来自http://bingning.net/free/source/datagridview/currentcell.html
    http://bingning.net/free/source/datagridview/contextmenuestrip.html
    取得当前单元格的代码。Console.WriteLine("现在单元格的位置是({0}, {1})。",
         DataGridView1.CurrentCellAddress.X,
         DataGridView1.CurrentCellAddress.Y);
    菜单设定的代码//DataGridView的ContextMenuStrip设定
     DataGridView1.ContextMenuStrip = this.ContextMenuStrip1; //列的ContextMenuStrip设定
     DataGridView1.Columns[0].ContextMenuStrip = this.ContextMenuStrip2;
     //列Header的ContextMenuStrip设定
     DataGridView1.Columns[0].HeaderCell.ContextMenuStrip = this.ContextMenuStrip2; //行的ContextMenuStrip设定
     DataGridView1.Rows[0].ContextMenuStrip = this.ContextMenuStrip3; //单元格的ContextMenuStrip设定
     DataGridView1[0, 1].ContextMenuStrip = this.ContextMenuStrip4;
      

  3.   

     private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
            {
                DataGridView.HitTestInfo info = this.dataGridView1.HitTest(e.Location.X, e.Location.Y);
               // info中有相关的信息.
            }
      

  4.   

     private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                {
                    if (e.RowIndex >= 0)
                    {
                        dataGridView1.ClearSelection();
                        dataGridView1.Rows[e.RowIndex].Selected = true;
                        dataGridView1.CurrentCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
                        cm_col.Show(MousePosition.X, MousePosition.Y);
                    }
                }
            }