WinForm之DataGridView用法

简介: WinForm之DataGridView用法

向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];
}

设置选中dataGridView的第i行并滚动到该行。

dataGridView_detail.Rows[i].Selected=true;
dataGridView_detail.FirstDisplayedScrollingRowIndex = i;

初始的dataGridView最下边一行没有横线,强迫症看着难受。修改其ColumnHeadersBorderStyle属性为Raised。(PS:找了好久)

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);

 


相关文章
|
6月前
|
前端开发 C#
浅谈WPF之DataGrid动态生成列
在日常开发中,DataGrid作为二维表格,非常适合数据的展示和统计。通常情况下,一般都有固定的格式和确定的数据列展示,但是在某些特殊情况下,也可能会需要用到动态生成列。本文以一些简单的小例子,简述在WPF开发中,如何动态生成DataGrid的行和列,仅供学习分享使用,如有不足之处,还请指正。
333 2
让WPF中的DataGrid像Excel一样可以筛选(下)
让WPF中的DataGrid像Excel一样可以筛选(下)
227 0
|
SQL 存储 Go
WinForm DataGridView分页功能
WinForm 里面的DataGridView不像WebForm里面的GridView那样有自带的分页功能,需要自己写代码来实现分页,效果如下图: 分页控件   .CS: 1 using System; 2 using System.
1416 0
|
C# Windows
WPF DataGrid分页功能实现代码
在Silverlight中DataGrid分页可以结合DataPager控件很容易实现,但是在WPF中没有类似的,需要手动实现这样一个控件: 1、创建一个UserControl,DP.
1154 0
|
缓存 算法 索引
WinForm——DataGridView总结
WinForm——DataGridView总结
517 0
WinForm——DataGridView总结