c# - una - DatagridView ¿Cómo tener un recuento de filas diferente por columna?
obtener valor de una celda de datagridview c# (2)
Así que estaba tratando de mostrar mis datos en formato específico en una vista de datagridview
. Entonces mi formato es así:
A B C
1 1 1
2 2 x
3 x x
la x significa que no hay célula.
Como puede ver, cada columna tiene un recuento de filas diferente. Quiero lograr el mismo resultado en DatagridView o en cualquier otro control en Dot Net Framework.
Intenta seguir
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;
Para ampliar la respuesta de jdweng , si por alguna razón realmente quieres:
[T] él x significa que no hay célula.
Luego puede manejar el evento DataGridView.CellPainting
para ocultar efectivamente la celda vacía. Eso sí, comenzará a parecer extraño cuando null
celdas null
se entremezclen en medio de celdas valiosas, y no solo en los extremos de la fila.
// ...
dt.Rows.Add(new object[] { 3, null, null });
this.dataGridView1.DataSource = dt;
this.dataGridView1.CellPainting += DataGridView1_CellPainting;
private void DataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
{
DataGridViewCell cell = this.dataGridView1[e.ColumnIndex, e.RowIndex];
if (cell.Value == null || cell.Value is DBNull)
{
using (SolidBrush brush = new SolidBrush(this.dataGridView1.BackgroundColor))
{
e.Graphics.FillRectangle(brush, e.CellBounds);
}
e.Handled = true;
}
}
}