Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DatagridView如何在每列中有不同的行数?_C#_.net_Datagridview - Fatal编程技术网

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中,每个项可以有不同的列数,因为它的项是锯齿状数组。因此,显示的效果是可能的,但只与每行末尾缺失的细胞一样长。感谢我所寻找的,感谢我所寻找的,哇,这是真正的答案哇,这是真正的答案