当前位置: 移动技术网 > IT编程>开发语言>.net > C#开发WinForm之DataGridView用法

C#开发WinForm之DataGridView用法

2020年07月22日  | 移动技术网IT编程  | 我要评论
  1. 向dataGridView添加n行。
    for(int i=0;i<n;i++)
    {
    	i = dataGridView_detail.Rows.Add();
    	dataGridView_detail.Rows[i].Cells[0].Value = i+1;
    	dataGridView_detail.Rows[i].Cells[1].Value = value[i];
    }
  2. 设置选中dataGridView的第i行并滚动到该行。
    dataGridView_detail.Rows[i].Selected=true;
    dataGridView_detail.FirstDisplayedScrollingRowIndex = i;
  3. 初始的dataGridView最下边一行没有横线,强迫症看着难受。修改其ColumnHeadersBorderStyle属性为Raised。(PS:找了好久)
  4. dataGridView常用事件:

      (1)使用其CellMouseClick实现鼠标右键选中dataGridView某项,弹出右键菜单(contextMenuStrip_items)。

private void dataGridView_detail_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
    try
    {
        if (dataGridView_detail.Rows.Count == 0)
            return;
        if (dataGridView_detail.SelectedRows.Count == 0)//无选中信息  
            return;
        if (e.Button == MouseButtons.Right)
        {
            Rectangle R = dataGridView_detail.GetRowDisplayRectangle(dataGridView_detail.CurrentCell.RowIndex,false);
            System.Drawing.Point pos = new System.Drawing.Point(e.X, e.Y);
            this.ToolStripMenuItem_delete.Visible = true;
            this.contextMenuStrip_items.Show(MousePosition.X,MousePosition.Y);
        }
    }
    catch(Exception ex)
    {
        ErrorLog.Error(ex.Message);
    }
}

   5. 在dataGridView数据较多时,拉动右边滚动条数据显示会很卡,可加速刷新速度。

public static class ExtensionMethods
{
    public static void DoubleBuffered(this DataGridView dgv, bool setting)
    {
        Type dgvType = dgv.GetType();
        PropertyInfo pi = dgvType.GetProperty("DoubleBuffered",
            BindingFlags.Instance | BindingFlags.NonPublic);
        pi.SetValue(dgv, setting, null);
    }
}

//使用时引用命名控件
//dataGridView1.DoubleBuffered(true);

 


    未完待续......

本文地址:https://blog.csdn.net/qq_41672428/article/details/107471259

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网