注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

午夜阳光

 
 
 

日志

 
 

DataGridView中表头增加复选框  

2012-08-24 14:19:41|  分类: C# |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
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)
        {
           foreach (DataGridViewRow row in this.dataGridView1.Rows)
            {
                if (row.IsNewRow) continue;
                row.Cells[0].Value = this.checkBox1.Checked;
                // 反选
                // row.Cells["checked"].Value =
                //    !Convert.ToBoolean(row.Cells["checked"].Value);
            }
        }
        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();
            }
        }
    }
}
  评论这张
 
阅读(916)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017