datagridview的学习

本文详细介绍了DataGridView控件的各种操作方法,包括插入、删除行,设置序号列,添加控件位置,以及常用属性设置等。此外还讲解了如何通过设置使DataGridView具备只读功能,调整编辑模式,实现单元格内容的复制粘贴等功能。
datagridview的插入

我用的在datatable的插入在刷新的方法

 var dt = new DataTable();
 DataRow drr = dt.NewRow();

先把datagridview的数据取出来放在datatable里
 for (int i = 0; i < dataGridView1.Columns.Count; i++)
 {
        dt.Columns.Add(dataGridView1.Columns[i].Name);
 }
for (int j = 0; j < dataGridView1.Rows.Count; j++)
{
        DataRow dr = dt.NewRow();
        for (int k = 0; k < dataGridView1.Columns.Count; k++)
        {
               dr[k] = dataGridView1.Rows[j].Cells[k].Value;
        }
               dt.Rows.Add(dr);
        }
 int h = dataGridView1.CurrentRow.Index;
 dt.Rows.InsertAt(drr, h);

datagridview的删除

 dataGridView1.Rows.Remove(dataGridView1.SelectedRows[0]);

datagridview的序号列


 private void dataGridView6_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
 {
        Rectangle rectangle = new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, dataGridView1.RowHeadersWidth - 4, e.RowBounds.Height);

        e.RowIndex+1是指从1开始

        TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(),
        dataGridView6.RowHeadersDefaultCellStyle.Font, rectangle,
        dataGridView6.RowHeadersDefaultCellStyle.ForeColor, TextFormatFlags.VerticalCenter | TextFormatFlags.Right);

      //使用指定的设备上下文、字体、颜色和格式说明在指定界限中绘制指定文本。

  }

datagridview 的控件添加的位置

 首先先把listbox添加到datagridview里

datagridview.controls.add(listbox1)

Rectangle list = dataGridView6.GetCellDisplayRectangle(e.ColumnIndex,-1, true);//得到datagridview所点击空格的位置大小等信息
                        listBox1.Left = list.Left;
                        listBox1.Top = list.Top + list.Height;//这个是放在你所点击的控件的位置的下面

         listBox1.Size=list.Size;
                        listBox1.Visible = true;

datagridview常用的属性

datagridview.dataSource//绑定数据库

datagridview.column[""].headText="列队名字"

datagridview.column[i].name//列的名字

datagridview.comtrols.add()//控件的增加

datagridview.AutoGenerateColumns=false //获取或设置一个值,该值指示在设置 DataSource 或 DataMember 属性时是否自动创建列。false是否

datagridview.Rows.Remove(dataGridView6.SelectedRows[0]);//删除行

// 设置 datagridview的第2列整列单元格为只读
datagridview.Columns[1].ReadOnly = true;
// 设置 DataGridView1 的第3行整行单元格为只读
datagridview.Rows[2].ReadOnly = true;
// 设置 DataGridView1 的[0,0]单元格为只读
datagridview[0, 0].ReadOnly = true;

datagridview.TopLeftHeaderCell.Value = "序号";//设置左上角的单元格的值

Column.DataPropertyName = "Name";//每一列绑定数据库的字段
// 列头隐藏
datagridview.ColumnHeadersVisible = false;
// 行头隐藏
datagridview.RowHeadersVisible = false;

 删除选中行
foreach (DataGridViewRow r in datagridview.SelectedRows)
{
    if (!r.IsNewRow)
    { 
        datagridview.Rows.Remove(r);
    }
}

datagridview.Columns[5].SortMode = DataGridViewColumnSortMode.NotSortable;//设置列的排序

datagridview.EditMode = DataGridViewEditMode.EditOnKeystrokeOrF2;//设置datatgridview的编辑模式。这个是按字符或f2编辑

//datagridview的粘贴

datagridview.ClipboardCopyMode 属性被设定为 DataGridViewClipboardCopyMode.Disable 以外的情况时,「Ctrl + C」 按下的时候,被选择的单元格的内容会拷贝到系统剪切板内。格式有: Text, UnicodeText,Html, CommaSeparatedValue。可以直接粘贴到 Excel 内。

ClipboardCopyMode 还可以设定 Header部分是否拷贝: EnableAlwaysIncludeHeaderText 拷贝Header部分、EnableWithoutHeaderText 则不拷贝。默认是 EnableWithAutoHeaderText , Header 如果选择了的话,就拷贝。

dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;//设置 行高的模式

转载于:https://www.cnblogs.com/xzgspchina/archive/2012/09/06/2673403.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值