Visual C# WindowsForm cómo agregar casillas de verificación a datagridview
¿Cómo agregar una casilla de verificación al encabezado de la tabla winform datagridview? Haga clic en la casilla de verificación en el encabezado de la tabla y seleccione todas o ninguna de las comprobaciones en las siguientes filas
usando System;
usando System.Collections.Generic;
usando System.ComponentModel;
usando System.Data;
usando System.Drawing;
usando System.Linq;
usando System.Text;
usando System.Windows.Forms;
espacio de nombres WindowsFormsApplication1
{
clase públicapartial1: Formulario
{
DataGridView privado DataGridView1 =nuevo DataGridView();
CheckBox privado CheckBox1 =nueva casilla de verificación( );
Form1 público()
{
InitializeComponent();
}
privatevoid Form1_Load( remitente del objeto, EventArgs e)
{
CheckBox1.CheckedChanged += CheckBox1_CheckedChanged;
DataGridView1.CellPainting += DataGridView1_CellPainting;
this .DataGridView1.AllowUserToResizeRows =false;
this.DataGridView1.AllowUserToResizeColumns =false;
this.DataGridView1.Dock = DockStyle.Fill;
this.DataGridView1.Columns.Add(new DataGridViewCheckBoxColumn());
this.DataGridView1.Columns.Add("Columna2", "Columna2");
for (int i = 1; i < =3; i++)
{
this.DataGridView1.Rows.Add(0, "Fila"+ i.ToString() +" Columna2");
}
this.CheckBox1.Visible =false;
this.CheckBox1.Text ="CheckBox";
this.Controls. Add(DataGridView1) ;
this.Controls.Add(CheckBox1);
}
privatevoid CheckBox1_CheckedChanged(objeto enviado, System.EventArgs e)
{
para (int i =0; i <=this.DataGr
idView1.RowCount -1; i++)
{
this.DataGridView1.Rows.SharedRow(i).SetValues(CheckBox1.Checked);
}
}
privatevoid DataGridView1_CellPainting(remitente del objeto, System.Windows.Forms.DataGridViewCellPaintingEventArgs e)
{
if (e.RowIndex = =-1& e.ColumnIndex ==0)
{
Punto p =this.DataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true).Location;
p.Offset(this.DataGridView1.Left, this.DataGridView1.Top);
this.CheckBox1.Location = p;
this.CheckBox1.Size =this .DataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Tamaño;
this.CheckBox1.Visible =true;
this.CheckBox1.BringToFront(); p> p>
}
}
}
}