Yaz  Font K   lt Yaz  Font B y lt

dataGridView da Tüm Satırlar İçin Uncheck ve Check Olayı

 

Merhaba arkadaşlar bu makalemizde dataGridView nesnesinin başlık kısmına ekleyeceğimiz Checkbox nesnesine tıkladığımızda dataGridView nesnemizdeki tüm satırları seçeceğiz veya Seçili CheckBox a tekrar tıkladığımızda CheckBox sütunundaki işaretleri kaldıracağız. 

İlk önce dataGridView nesnesinin ilk sırasına CheckBox sütunu ekliyoruz. 

 

Resim1

 

Şekil 1


Resim2

 

Şekil 2

 

Form1.cs

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

 

namespace datagridview_check_uncheck_all_rows

{

    public partial class Form1 : Form

    {

        public Form1()

        {

             InitializeComponent();

        }

 

        private void Form1_Load(object sender, EventArgs e)

        {

            this.bindDataGridView();

        }

 

        CheckBox headerCheckBox = new CheckBox();

        private void bindDataGridView()

        {

            SqlConnection con = new SqlConnection("Data Source=sirius\\SQLEXPRESS02;Initial Catalog=master;User ID=sa;Password=2344;Integrated Security=true");

            con.Open();

            SqlCommand cmd = new SqlCommand("Select * From dbo.worldclassics ", con);

            SqlDataAdapter da = new SqlDataAdapter(cmd);

 

            DataTable dt = new DataTable();

            da.Fill(dt);

            con.Close();

             dataGridView1.DataSource = dt;

 

            Point headerCellLocation = this.dataGridView1.GetCellDisplayRectangle(0, -1, true).Location;

 

            //Place the Header CheckBox in the Location of the Header Cell.

            //Baslik kismina checkbox i yerlestiriyoruz.

             headerCheckBox.Location = new Point(headerCellLocation.X + 8, headerCellLocation.Y + 2);

             headerCheckBox.BackColor = Color.White;

             headerCheckBox.Size = new Size(18, 18);

 

            //Assign Click event to the Header CheckBox.

            //Baslik kısmındaki checkbox ın olay kısmına atama yapiyoruz. 

             headerCheckBox.Click += new EventHandler(HeaderCheckBox_Clicked);

            dataGridView1.Controls.Add(headerCheckBox);

 

            //Add a CheckBox Column to the DataGridView at the first position.

           //Datagridview nesnesinin ilk sırasina bir checkbox sutun ekliyoruz.   

             DataGridViewCheckBoxColumn checkBoxColumn = new DataGridViewCheckBoxColumn();

             checkBoxColumn.HeaderText = "";

            checkBoxColumn.Width = 30;

             checkBoxColumn.Name = "checkBoxColumn";

             dataGridView1.Columns.Insert(0, checkBoxColumn);

 

            //Assign Click event to the DataGridView Cell.

            //Datagridview hucresine tiklama olayina atama yapiyoruz

             dataGridView1.CellContentClick += new DataGridViewCellEventHandler(dataGridView1_CellClick);

 

        }

 

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)

        {

            //Check to ensure that the row CheckBox is clicked.

            // Checkbox satirina tiklanildigini kontrol ediyoruz

            if (e.RowIndex >= 0 && e.ColumnIndex == 0)

            {

                //Loop to verify whether all row CheckBoxes are checked or not.

               //Tum satirlarin secili olup olmadigini dogrulamak icin gerekli dongumuz 

                bool isChecked = true;

                foreach (DataGridViewRow row in dataGridView1.Rows)

                {

                    if (Convert.ToBoolean(row.Cells["checkBoxColumn"].EditedFormattedValue) == false)

                    {

                         isChecked = false;

                        break;

                    }

                }

                 headerCheckBox.Checked = isChecked;

            }

 

        }

 

        private void HeaderCheckBox_Clicked(object sender, EventArgs e)

        {

            //Necessary to end the edit mode of the Cell.

             dataGridView1.EndEdit();

 

            //Loop and check and uncheck all row CheckBoxes based on Header Cell CheckBox.

            foreach (DataGridViewRow row in dataGridView1.Rows)

            {

                 DataGridViewCheckBoxCell checkBox = (row.Cells["checkBoxColumn"as DataGridViewCheckBoxCell);

                 checkBox.Value = headerCheckBox.Checked;

            }

        }

 

    }

}

 

Bir makalenin daha sonuna geldik. Bir sonraki makalede görüşmek üzere. Bahadır ŞAHİN