日期:2014-05-18 浏览次数:20947 次
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 { public partial class Form1 : Form { private DataGridView DataGridView1 = new DataGridView(); private CheckBox CheckBox1 = new CheckBox(); public Form1() { InitializeComponent(); } private void 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); } private void 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); } } private void 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(); } } } }