Winform中使用DataGridView自定义列名称及加载数据
步骤一:设计时添加列(使用设计器)
打开窗体设计器:右键DataGridView控件,选择“编辑列”。
添加列:
点击“添加”按钮,选择列类型(如DataGridViewTextBoxColumn)。
在右侧属性窗口中设置列的HeaderText为自定义名称(如“姓名”)。
设置DataPropertyName为数据源对应的字段名(如“Name”)。
重复添加其他列,如“年龄”和“成绩”,并设置各自的属性。
步骤二:通过代码动态添加列
在窗体的Load事件或初始化方法中添加以下代码:
// 清空现有列
dataGridView1.Columns.Clear();
// 创建并配置列
DataGridViewTextBoxColumn nameColumn = new DataGridViewTextBoxColumn();
nameColumn.HeaderText = "姓名";
nameColumn.DataPropertyName = "Name"; // 对应数据对象的属性名
DataGridViewTextBoxColumn ageColumn = new DataGridViewTextBoxColumn();
ageColumn.HeaderText = "年龄";
ageColumn.DataPropertyName = "Age";
DataGridViewTextBoxColumn scoreColumn = new DataGridViewTextBoxColumn();
scoreColumn.HeaderText = "成绩";
scoreColumn.DataPropertyName = "Score";
// 将列添加到DataGridView
dataGridView1.Columns.Add(nameColumn);
dataGridView1.Columns.Add(ageColumn);
dataGridView1.Columns.Add(scoreColumn);
步骤三:准备数据源
创建一个数据模型类:
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
public decimal Score { get; set; }
}
生成数据列表:
List<Student> students = new List<Student>
{
new Student { Name = "张三", Age = 20, Score = 85.5m },
new Student { Name = "李四", Age = 22, Score = 90.0m },
new Student { Name = "王五", Age = 21, Score = 78.3m }
};
步骤四:绑定数据源
将数据源绑定到DataGridView:
dataGridView1.DataSource = students;
完整代码示例
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace WinformDataGridViewDemo
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
InitializeDataGridView();
LoadData();
}
private void InitializeDataGridView()
{
// 动态添加列
dataGridView1.Columns.Clear();
dataGridView1.Columns.Add(new DataGridViewTextBoxColumn
{
HeaderText = "姓名",
DataPropertyName = "Name"
});
dataGridView1.Columns.Add(new DataGridViewTextBoxColumn
{
HeaderText = "年龄",
DataPropertyName = "Age"
});
dataGridView1.Columns.Add(new DataGridViewTextBoxColumn
{
HeaderText = "成绩",
DataPropertyName = "Score"
});
}
private void LoadData()
{
List<Student> students = new List<Student>
{
new Student { Name = "张三", Age = 20, Score = 85.5m },
new Student { Name = "李四", Age = 22, Score = 90.0m },
new Student { Name = "王五", Age = 21, Score = 78.3m }
};
dataGridView1.DataSource = students;
}
}
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
public decimal Score { get; set; }
}
}
注意事项
数据绑定模式:
自动生成列:若未手动添加列,设置AutoGenerateColumns = true(默认),DataGridView会根据数据源自动生成列,列名为属性名称。
手动控制列:建议设置AutoGenerateColumns = false,完全自定义列的外观和行为。
更新数据源:
若需要用户编辑后更新数据源,确保数据对象实现INotifyPropertyChanged接口,或重新绑定数据源。
格式化数据:
使用DefaultCellStyle.Format格式化数值或日期(如scoreColumn.DefaultCellStyle.Format = "N2"显示两位小数)。
处理空数据源:
当数据源为空时,可显示友好提示,或在绑定前检查数据源是否为空。
通过上述步骤,您可以灵活地自定义DataGridView的列名,并正确加载和显示数据。
查看更多关于Winform中使用DataGridView自定义列名称及加载数据的详细内容...