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;//设置 行高的模式