求WinForm的DataGridView的DataGridViewCheckBoxColumn一个全选和反选用法我的需求:
1.当鼠标右键点击DataGridViewCheckBoxColumn中的checkbox时出现两个菜单:全选和反选2.当全选时把所有的checkbox的checked设置为true,
  当反选时把checked为true的设置为false,把checked为false的设置为true

解决方案 »

  1.   

    循环设置
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  2.   

    先添加个contextMenuStrip控件,然后将DataGridView的contextMenuStrip属性设置为刚才添加的那个控件
    然后在contextMenuStrip控件上添加两个菜单,全选和反选,然后就再写点代码
    namespace button
    {
        public partial class Form1 : Form
        {
              
            public Form1()
            {
                InitializeComponent();
                DataGridViewCheckBoxColumn db = new DataGridViewCheckBoxColumn();
                db.Name = "选择";
                dataGridView1.Columns.Add(db);
            }        private void toolStripMenuItem1_Click(object sender, EventArgs e)//全选
            {            for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
                {
                    this.dataGridView1["选择", i].Value = true;
                } 
            }        private void toolStripMenuItem2_Click(object sender, EventArgs e)//反选
            {
                for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
                {
                    this.dataGridView1["选择", i].Value = false;
                }         }    }
      

  3.   


    public partial class Form3 : Form
        {
            private OutlookBarPage outlookBarPage1;
            private System.Windows.Forms.DataGridView dataGridView1;
            private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
            private System.Windows.Forms.ToolStripMenuItem 全选ToolStripMenuItem;
            private System.Windows.Forms.ToolStripMenuItem 反选ToolStripMenuItem;
            private System.Windows.Forms.DataGridViewTextBoxColumn Column1;
            private System.Windows.Forms.DataGridViewCheckBoxColumn Column2;        public Form3()
            {
                InitializeComponent();
            }        private void Form3_Load(object sender, EventArgs e)
            {
                for (int i = 0; i < 10; i++)
                {
                    DataGridViewRow row = dataGridView1.Rows[dataGridView1.Rows.Add()];
                    row.Cells[0].Value = i;
                    row.Cells[1].Value = false;
                }
            }        private void 全选ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                    row.Cells[1].Value = true;
                }
            }        private void 反选ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                dataGridView1.EndEdit();
                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                    row.Cells[1].Value = !Convert.ToBoolean(row.Cells[1].Value);
                }
            }        private void InitializeComponent()
            {
                this.components = new System.ComponentModel.Container();
                this.dataGridView1 = new System.Windows.Forms.DataGridView();
                this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
                this.全选ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
                this.反选ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
                this.outlookBarPage1 = new WindowsFormsApplication5.OutlookBarPage();
                this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
                this.Column2 = new System.Windows.Forms.DataGridViewCheckBoxColumn();
                ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
                this.contextMenuStrip1.SuspendLayout();
                this.SuspendLayout();
                // 
                // dataGridView1
                // 
                this.dataGridView1.AllowUserToAddRows = false;
                this.dataGridView1.AllowUserToDeleteRows = false;
                this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
                this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
                this.Column1,
                this.Column2});
                this.dataGridView1.ContextMenuStrip = this.contextMenuStrip1;
                this.dataGridView1.Location = new System.Drawing.Point(80, 77);
                this.dataGridView1.Name = "dataGridView1";
                this.dataGridView1.RowTemplate.Height = 23;
                this.dataGridView1.Size = new System.Drawing.Size(269, 278);
                this.dataGridView1.TabIndex = 0;
                // 
                // contextMenuStrip1
                // 
                this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
                this.全选ToolStripMenuItem,
                this.反选ToolStripMenuItem});
                this.contextMenuStrip1.Name = "contextMenuStrip1";
                this.contextMenuStrip1.Size = new System.Drawing.Size(95, 48);
                // 
                // 全选ToolStripMenuItem
                // 
                this.全选ToolStripMenuItem.Name = "全选ToolStripMenuItem";
                this.全选ToolStripMenuItem.Size = new System.Drawing.Size(94, 22);
                this.全选ToolStripMenuItem.Text = "全选";
                this.全选ToolStripMenuItem.Click += new System.EventHandler(this.全选ToolStripMenuItem_Click);
                // 
                // 反选ToolStripMenuItem
                // 
                this.反选ToolStripMenuItem.Name = "反选ToolStripMenuItem";
                this.反选ToolStripMenuItem.Size = new System.Drawing.Size(94, 22);
                this.反选ToolStripMenuItem.Text = "反选";
                this.反选ToolStripMenuItem.Click += new System.EventHandler(this.反选ToolStripMenuItem_Click);
                // 
                // outlookBarPage1
                // 
                this.outlookBarPage1.Caption = "";
                this.outlookBarPage1.Location = new System.Drawing.Point(0, 0);
                this.outlookBarPage1.Name = "outlookBarPage1";
                this.outlookBarPage1.Size = new System.Drawing.Size(200, 100);
                this.outlookBarPage1.TabIndex = 0;
                // 
                // Column1
                // 
                this.Column1.HeaderText = "Column1";
                this.Column1.Name = "Column1";
                this.Column1.ReadOnly = true;
                // 
                // Column2
                // 
                this.Column2.HeaderText = "Column2";
                this.Column2.Name = "Column2";
                // 
                // Form3
                // 
                this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
                this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                this.ClientSize = new System.Drawing.Size(614, 501);
                this.Controls.Add(this.dataGridView1);
                this.Name = "Form3";
                this.Text = "Form3";
                this.Load += new System.EventHandler(this.Form3_Load);
                ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
                this.contextMenuStrip1.ResumeLayout(false);
                this.ResumeLayout(false);        }