首页 > 解决方案 > DataGridView 不显示来自 DataTable C# 的列

问题描述

我的 GUI 在 Form1 中有一个 datagridview,应该由位于单独类中的数据表中的数据填充。我已经设置了绑定源和数据源,但是当我运行我的 GUI 时,datagridview 是空白的,并且不显示我的数据表中的列。在这一点上,我没有为行存储任何数据,我只是想确保我的列标题得到显示。

我查看了以下所有链接,到目前为止没有任何帮助:

DataGridView 不显示列/数据

DataGridView 不显示我的列

如何在c#中将数据表绑定到datagridview

DataGridView 不显示 DataTable

这是我的代码

Form1.cs:

using System;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using Excel = Microsoft.Office.Interop.Excel;

public Form1()
{
    InitializeComponent();
    DataTable dataTable = LightSensor.dtOptical;
    DGV.DataSource = dataTable;
}

光传感器.cs:

using System;
using System.Data;
using System.IO.Ports;
using System.Threading.Tasks;
using System.Windows.Forms;

public static DataTable dtOptical = new DataTable();
BindingSource bindingSource = new BindingSource();

private void OpticalDataSetup()
{
    dtOptical.Columns.Add("Sequence");
    dtOptical.Columns.Add("Date");
    dtOptical.Columns.Add("Time");
}
private void OpticalDataRows()
{
    DataRow row = dtOptical.NewRow();

    row = dtOptical.NewRow();
    row["Sequence"] = MeasSeq;
    row["Date"] = DateTime.Today.ToString("MM-dd-yyyy");
    row["Time"] = DateTime.Now.ToString("HH:mm:ss");

    dtOptical.Rows.Add(row);
    bindingSource.DataSource = dtOptical;
}

标签: c#.netuser-interfacedatagridviewdatatable

解决方案


您需要在 LightSensor 类中调用OpticalDataSetupOpticalDataRows的构造函数:

public LightSensor(){
 OpticalDataSetup();
 OpticalDataRows();
}

然后在 InitializeComponent() 之后初始化 LightSensor;

LightSensor ls = new LightSensor();

推荐阅读