日期:2014-05-18 浏览次数:21280 次
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();
}
}
}
}