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
0 comments:
Yorum Gönder