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.
Şekil 1
Ş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