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 //获取或设置一个值,该值指示在设置 DataSourceDataMember 属性时是否自动创建列。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;//设置 行高的模式

posted @ 2012-09-06 14:19  初阶风行  阅读(392)  评论(0编辑  收藏  举报