C# WinForms DataGridView 课程表实现详解

Mason
Mason
发布时间:2026-10-15| 5人浏览过
原创

在C# WinForms开发中,利用DataGridView制作课程表是常见的UI展示需求。本教程将通过构建数据结构、模拟数据填充及最终绑定三个环节,演示如何将课程信息以表格形式直观呈现。

1. 构建课程表的数据结构

要显示课程表,首先需要建立一个与之匹配的数据容器。我们使用 System.Data.DataTable 来定义表头,确保其包含“节数”以及周一到周日共8列。

第一步:定义 DataTable 并设置列

创建一个名为 subject 的 DataTable,依次添加列名。第一列为行标题(如第1节),后续七列为星期名称。

DataTable dt = new DataTable("subject");
dt.Columns.Add("周数/节数", typeof(string));
dt.Columns.Add("周一", typeof(string));
dt.Columns.Add("周二", typeof(string));
dt.Columns.Add("周三", typeof(string));
dt.Columns.Add("周四", typeof(string));
dt.Columns.Add("周五", typeof(string));
dt.Columns.Add("周六", typeof(string));
dt.Columns.Add("周日", typeof(string));

第二步:初始化行数据

假设课程表有4节课,我们需要循环添加4行。每行的第一列标记为对应的节数,以便标识行内容。

// 循环添加4行数据
for (int i = 0; i < 4; i++) 
{
    DataRow dr = dt.NewRow();
    dt.Rows.Add(dr);
}

// 填充行标题
for (int i = 0; i < 4; i++) {
    dt.Rows[i][0] = $"第{i + 1}节";
}

此时,dt 已具备表格的基本骨架。

上图展示了最终的课程表效果:

2. 模拟数据填充过程

在实际应用中,数据通常来自数据库。为了演示方便,这里通过嵌套循环模拟查询数据库的过程,将课程、教师、教室等信息拼接后填入表格单元格。

第三步:遍历节数与星期进行数据绑定

  • 外层循环 i 代表节数索引(0-3)。
  • 内层循环 j 代表星期索引(1-7,对应周一到周日)。
for (int i = 0; i < 4; i++) // 循环所有节次
{
    for (int j = 1; j < 8; j++) // 循环每一天
    {
        int num = i + 1;
        int week = j;
        
        // 注意:实际项目中应替换为真实的 SQL 连接字符串和参数化查询
        string sql = $"SELECT subject, teacher, room FROM course_table WHERE num='{num}' AND week = '{week}'";
        
        // 模拟数据获取(此处省略数据库连接代码)
        // 假设 reader.Read() 返回数据
        string sum = "语文\n张老师\n101室"; 
        
        // 将组合后的字符串存入 DataTable
        dt.Rows[i][j] = sum;
    }
}

这一阶段完成后,DataTable 的每一格都包含了具体的课程信息。

上图展示了模拟数据库中的课程表样式:

3. 将数据绑定至 DataGridView

最后一步是将准备好的 DataTable 数据源分配给界面上的 DataGridView 控件,即可自动生成可视化的表格。

this.DataGridView.DataSource = dt;

完成以上三步,一个基础的 C# WinForms 课程表界面就搭建完成了。通过调整 DataGridView 的属性(如列宽、对齐方式、背景色等),可以进一步优化排版美观度。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。