C# DatagridView如何在每列中有不同的行数?
因此,我试图在C# DatagridView如何在每列中有不同的行数?,c#,.net,datagridview,C#,.net,Datagridview,因此,我试图在datagridview中以特定格式显示数据。 所以我的格式是这样的: A B C 1 1 1 2 2 x 3 x x x表示没有细胞 正如您所看到的,每列都有不同的行数。我希望在DatagridView或Dot Net框架中的任何其他控件中实现相同的结果。尝试以下操作 DataTable dt = new DataTable("MyDataTable"); dt.Columns.Add("A", typeof(int));
datagridview
中以特定格式显示数据。
所以我的格式是这样的:
A B C
1 1 1
2 2 x
3 x x
x表示没有细胞
正如您所看到的,每列都有不同的行数。我希望在DatagridView或Dot Net框架中的任何其他控件中实现相同的结果。尝试以下操作
DataTable dt = new DataTable("MyDataTable");
dt.Columns.Add("A", typeof(int));
dt.Columns.Add("B", typeof(int));
dt.Columns.Add("C", typeof(int));
dt.Columns["A"].AllowDBNull = true;
dt.Columns["B"].AllowDBNull = true;
dt.Columns["C"].AllowDBNull = true;
dt.Rows.Add(new object[] { 1,2,3});
dt.Rows.Add(new object[] { 2, 2, });
dt.Rows.Add(new object[] { 3 });
datagridview1.DataSource = dt;
试着跟随
DataTable dt = new DataTable("MyDataTable");
dt.Columns.Add("A", typeof(int));
dt.Columns.Add("B", typeof(int));
dt.Columns.Add("C", typeof(int));
dt.Columns["A"].AllowDBNull = true;
dt.Columns["B"].AllowDBNull = true;
dt.Columns["C"].AllowDBNull = true;
dt.Rows.Add(new object[] { 1,2,3});
dt.Rows.Add(new object[] { 2, 2, });
dt.Rows.Add(new object[] { 3 });
datagridview1.DataSource = dt;
如果出于某种原因,您确实希望:
[T] 他的意思是没有细胞
然后,您可以处理DataGridView.CellPainting
事件来有效地隐藏空单元格。请注意,当null
单元格混合在有值单元格中时,它将开始看起来很奇怪,而不仅仅是在行尾
// ...
dt.Rows.Add(new object[] { 3, null, null });
this.dataGridView1.DataSource = dt;
this.dataGridView1.CellPainting += DataGridView1_CellPainting;
如果出于某种原因确实需要,请继续: [T] 他的意思是没有细胞 然后,您可以处理
DataGridView.CellPainting
事件来有效地隐藏空单元格。请注意,当null
单元格混合在有值单元格中时,它将开始看起来很奇怪,而不仅仅是在行尾
// ...
dt.Rows.Add(new object[] { 3, null, null });
this.dataGridView1.DataSource = dt;
this.dataGridView1.CellPainting += DataGridView1_CellPainting;
这根本不可能,因为DGV将始终保持二维阵列。当然,填充哪些单元格取决于您在listview中,每个项可以有不同的列数,因为它的项是锯齿状数组。因此,显示的效果是可能的,但仅与每行末尾缺少的单元格一样长。这根本不可能,因为DGV将始终保持2d数组。当然,填充哪些单元格取决于您在listview中,每个项可以有不同的列数,因为它的项是锯齿状数组。因此,显示的效果是可能的,但只与每行末尾缺失的细胞一样长。感谢我所寻找的,感谢我所寻找的,哇,这是真正的答案哇,这是真正的答案