1、DataGridView的特点
(1)DataGridView 一次只能显示一个表。如果绑定整个 DataSet,则(DataMember 属性 要设置为表名) 。否则不会显示任何数据。
(2)允许编辑数据。在单元格中双击或按 F2 来修改当前值。
(3)支持自动排序。在列标题中单击该字段,其值按升序或降序对值进行排序。(默认,排序时会按字母或数字顺序进行排序,字母顺序区分大小写)。
(4)支持多种选择,(可以通过单击并拖动来突出显示一个单元格、多个单元格或多个行,左上角的方块可以选择整个表)。
(5)支持自动调整大小,(在标题之间的列分隔符上双击,使左边的列自动按照单元格的内容展开或收缩)。
(6)在处理大量数据时,可以将 VirtualMode 属性设置为 true,以便显示可用数据的子集。
2、绑定数据
使用DataSource属性,将数据绑定到DataGridView。有两种方法,但一般使用第一种。
(1)
DataSet ds = new DataSet();
DataAdapter.Fill(ds, "TableName");
DataGridView1.DataSource = ds.Tables("TableName");
(2)
DataSet ds = new DataSet();
DataAdapter.Fill(Dts, "TableName");
DataGridView1.DataMember = "TableName";
DataGridView1.DataSource = ds;
3、当前单元格的操作
用DataGridView的CurrentCell属性可以 取得或修改当前单元格(及光标所在的单元格)的内容。
(1)取得当前单元格的值
DataGridView1.CurrentCell.Value;
(2)取得当前单元格值的类型
DataGridView1.CurrentCell.ValueType;
(3)取得当前单元格所在的列索引
DataGridView1.CurrentCell.ColumnIndex;
(4)取得当前单元格所在的行 索引
DataGridView1.CurrentCell.RowIndex;
3、行、列的隐藏和删除
(1) 行、列的隐藏
A:隐藏第n列,或“Name”列
DataGridView1.Columns[n-1].Visible = false;
DataGridView1.Columns[“Name”].Visible = false;
B:隐藏第n行,或当前单元格所在的行
DataGridView1.Rows[n-1].Visible = false;
DataGridView1.Rows[DataGridView1.CurrentCell.RowIndex].Visible = false;
(2) 行头、列头的隐藏
A:隐藏列头
DataGridView1.ColumnHeadersVisible = false;
B:隐藏行头
DataGridView1.RowHeadersVisible = false;
(3)删除列
A:删除指定列,如删除“Name”列
DataGridView1.Columns.Remove(“Name”);
B: 删除第n列
DataGridView1.Columns.RemoveAt(n-1);
(4)删除行
A:删除第n行
DataGridView1.Rows.RemoveAt(n-1);
B:删除选中行
foreach (DataGridViewRow row in DataGridView1.SelectedRows)
{
if (!row.IsNewRow)
{
DataGridView1.Rows.Remove(r);
}
}
4、冻结列或行
当某列被冻结(及固定)时,该列左侧的所有列不随着水平滚动条的滚动而移动,同理当某行冻结时,该行上面的所有行不随着垂直滚动条的滚动而移动。
(1)冻结列
DataGridView1.Columns[n-1].Frozen = true;
DataGridView1.Columns[“Name”].Frozen = true;
(2)冻结行
DataGridView1.Rows[n-1].Frozen = true;