【问题标题】:How to fill Datagridview in C# from DataTable adding custom columns?如何从 DataTable 添加自定义列在 C# 中填充 Datagridview?
【发布时间】:2017-08-30 19:28:33
【问题描述】:

我使用以下代码将DataTableDataGridView绑定:

DataTable dt = new DataTable();   
dt = serviceSqlite.select(new Pacients());    
dataGridView1.DataSource = dt;

我想在dt 中添加自定义列,它应该是CheckBoxImage 之一。

怎么做?

【问题讨论】:

  • 您可以将它们添加到您的DataGridView 像这样dataGridView1.Columns.Add(new DataGridViewCheckBoxColumn());
  • 你能分享完整的例子吗?设置列名?
  • 可以在表格中添加列;将第一个添加为 bool 并将第二个添加为 byte[] 。在排序或过滤方面更加灵活..
  • @OPV 好的。检查我的答案。

标签: c# winforms datagridview


【解决方案1】:

您可以将它们添加到您的DataGridView。像这样:

var checkBox = new DataGridViewCheckBoxColumn
{
    Name = "checkBox",
    HeaderText = @"checkBox",
    Width = 70
};
//Set other properties...
dataGridView1.Columns.Add(checkBox);

Image 也一样:

DataGridViewImageColumn image = new DataGridViewImageColumn();
//....

此外,如果您希望新列出现在另一列中,您可以将 dataGridView1.Columns.Add(checkBox); 替换为以下内容:

dataGridView1.DataSource = dt;
var checkBox = new DataGridViewCheckBoxColumn
{
    Name = "checkBox",
    HeaderText = @"checkBox",
    Width = 70
};
//Set other properties...
dataGridView1.Columns.Insert(1, checkBox);

如果您想将其添加到您的DataTable,您可以将其添加为DataTable 中的boolean 字段:

dt.Columns.Add(new DataColumn("checkBox", typeof(bool)));
dataGridView1.DataSource = dt; 

因此,当您将DataTable 绑定到您的DataGridView 时,会为此boolean 字段创建一个CheckBoxColumn

【讨论】:

  • 之后如何与DataTable绑定?
  • 我不明白,我需要将新列添加到 DataTable 或 dataGridView1?它会正确工作吗?当手动添加DataTable的一部分数据时?
  • @OPV 您需要将列添加到您的DataGridView 以显示在您的表单上。只需将我的答案添加到您的代码中,您就会看到结果。
  • @OPV,选择您的毒药...然后绑定到您的 DataTable,将一列添加到 DataGridView... 或者...将该列添加到您的 DataTable,然后将 DataGridView 绑定到您的 DataTable .您的需求的全球范围应该告诉您摆动的方式。就个人而言,我会更改我的 DataTable,然后将其绑定到 DataGridView。
  • 如何为新列 CheckBox 更改 DataTable,我需要将空列添加到 DataTable?你能编辑你的答案吗
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-15
  • 2011-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多