好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Winform中使用DataGridView自定义列名称及加载数据

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自定义列名称及加载数据的详细内容...

  阅读:22次