bootstrap fuelux datagrid表头怎么添加checkbox多选框

2025-05-01 22:36:21
推荐回答(1个)
回答(1):

winform datagridview表头怎么增加复选框,点击表头的复选框,下面行的复选全选或全未选
2011-03-08 14:22
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
publicpartialclass Form1 : Form
{
private DataGridView DataGridView1 =new DataGridView();
private CheckBox CheckBox1 =new CheckBox();

public Form1()
{
InitializeComponent();
}

privatevoid Form1_Load(object sender, 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("Column2", "Column2");

for (int i =1; i <=3; i++)
{
this.DataGridView1.Rows.Add(0, "Row"+ i.ToString() +" Column2");
}

this.CheckBox1.Visible =false;
this.CheckBox1.Text ="CheckBox";

this.Controls.Add(DataGridView1);
this.Controls.Add(CheckBox1);
}

privatevoid CheckBox1_CheckedChanged(object send, System.EventArgs e)
{
for (int i =0; i <=this.DataGridView1.RowCount -1; i++)
{
this.DataGridView1.Rows.SharedRow(i).SetValues(CheckBox1.Checked);
}
}

privatevoid DataGridView1_CellPainting(object sender, System.Windows.Forms.DataGridViewCellPaintingEventArgs e)
{
if (e.RowIndex ==-1& e.ColumnIndex ==0)
{
Point 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).Size;
this.CheckBox1.Visible =true;
this.CheckBox1.BringToFront();
}
}

}
}