C# DataGridView常用操作汇总
前言
在C# Winform应用程序开发中,DataGridView是一个非常实用的控件,它可以用来显示和编辑数据,而且比起ListView控件来说更加灵活,功能更加丰富。在本攻略中,我们会介绍DataGridView控件的常用操作,包括如何绑定数据源、如何设置单元格样式、如何实现排序过滤和单元格合并等。
绑定数据源
DataGridView控件可以与多种数据源进行绑定,包括DataTable、DataSet、BindingSource等。下面我们将演示如何使用DataTable和DataSet来绑定DataGridView。
绑定DataTable
下面是一个简单的DataTable:
DataTable table = new DataTable();
table.Columns.Add("ID", typeof(int));
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Age", typeof(int));
table.Rows.Add(1, "张三", 18);
table.Rows.Add(2, "李四", 20);
table.Rows.Add(3, "王五", 22);
然后我们可以使用以下代码将DataTable绑定到DataGridView控件上:
dataGridView1.DataSource = table;
这样就完成了DataGridView控件和数据表的绑定。
绑定DataSet
如果你的数据需要分成多个表进行组织管理,那么可以使用DataSet来进行数据绑定。下面是一个简单的DataSet:
DataSet dataSet = new DataSet();
DataTable table1 = new DataTable();
table1.TableName = "学生";
table1.Columns.Add("ID", typeof(int));
table1.Columns.Add("Name", typeof(string));
table1.Columns.Add("Age", typeof(int));
table1.Rows.Add(1, "张三", 18);
table1.Rows.Add(2, "李四", 20);
table1.Rows.Add(3, "王五", 22);
DataTable table2 = new DataTable();
table2.TableName = "课程";
table2.Columns.Add("ID", typeof(int));
table2.Columns.Add("Name", typeof(string));
table2.Columns.Add("Teacher", typeof(string));
table2.Rows.Add(1, "数学", "张老师");
table2.Rows.Add(2, "英语", "李老师");
table2.Rows.Add(3, "物理", "王老师");
dataSet.Tables.Add(table1);
dataSet.Tables.Add(table2);
然后我们可以使用以下代码将DataSet绑定到DataGridView控件上:
dataGridView1.DataSource = dataSet.Tables["学生"];
这样就完成了DataGridView控件和数据集的绑定。
设置单元格样式
DataGridView控件提供了丰富的样式属性,可以用来设置单元格的字体、背景色、边框等样式。下面的代码演示了如何设置单元格的背景色:
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == 1 && e.RowIndex % 2 == 0)
{
e.CellStyle.BackColor = Color.LightGreen;
}
}
这段代码会将第奇数行的第二列单元格的背景色设置为浅绿色。
实现排序和过滤
DataGridView控件提供了默认的排序和过滤功能,你也可以自定义排序和过滤规则。
实现排序
DataGridView控件提供了排序功能,只需要设置排序列和排序方向即可。下面的代码将第一列作为排序列,按照升序排序:
dataGridView1.Sort(dataGridView1.Columns[0], ListSortDirection.Ascending);
实现过滤
DataGridView控件提供了过滤功能,只需要设置过滤条件即可。下面的代码将第二列等于“张三”或者“李四”的行进行过滤:
(table1.DefaultView as DataView).RowFilter = "Name = '张三' or Name = '李四'";
实现单元格合并
DataGridView控件提供了单元格合并功能,可以将多个单元格合并成一个单元格。下面的代码将第一行的前三个单元格合并成一个单元格,并将其居中显示:
private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.ColumnIndex == 0 && e.RowIndex == 0)
{
e.Graphics.FillRectangle(Brushes.White, e.CellBounds);
using (SolidBrush brush = new SolidBrush(e.CellStyle.ForeColor))
{
StringFormat format = new StringFormat();
format.LineAlignment = StringAlignment.Center;
format.Alignment = StringAlignment.Center;
e.Graphics.DrawString("合并的单元格", e.CellStyle.Font, brush, e.CellBounds, format);
e.Handled = true;
}
}
}
以上就是C# DataGridView控件的常用操作汇总。如果你还不熟悉DataGridView控件,可以通过这些示例代码来加深理解,相信能够帮助你更好地使用这个控件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# DatagridView常用操作汇总 - Python技术站