[英]C# Efficient way to check datagridview checkbox column for checked values
[英]C# Check if any checkbox in datagridview is checked
選中dataGridView中的復選框時,選中的復選框會自動變為false,因為我每秒刷新一下dataGridView。 我想發生的是選中dataGridView復選框時取消每秒刷新。
這是我的代碼:
private void UpdateVisitors_Load(object sender, EventArgs e)
{
//Realtime refresh
refresher.Interval = (1 * 1000); // 10 secs
refresher.Tick += new EventHandler(refresh);
refresher.Start();
}
private void refresh(object sender, EventArgs e)
{
refreshLocal();
}
更新這是我用來刷新dataGridView的refreshLocal代碼
void refreshLocal()
{
dgvLocal.Rows.Clear();
connection.Close();
connection.Open();
SqlCommand cmd = connection.CreateCommand();
cmd.CommandText = "Select * from tbl_Registration ORDER BY [ID] DESC;";
SqlDataAdapter adap = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adap.Fill(ds);
foreach (DataRow dr in ds.Tables[0].Rows)
{
myID = dr["ID"].ToString();
category = dr["Category"].ToString();
repname = dr["Representative"].ToString();
if (dr["City/Province"].ToString() == "")
{
city = dr["Province"].ToString();
}
else
{
city = dr["City/Province"].ToString();
}
pax = dr["Pax"].ToString();
male = dr["Male"].ToString();
female = dr["Female"].ToString();
students = dr["Students"].ToString();
ar = dr["AR Users"].ToString();
date = dr["Date & Time Added"].ToString();
dgvLocal.Rows.Add(false, myID, category, repname, city, pax,students, ar, date);
}
connection.Close();
}
您需要綁定到DataGridView的事件CellValueChanged ,並在處理程序內部,根據復選框的值停止計時器。
private void dataGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e) {
if (dataGridView.Columns[e.ColumnIndex].Name == "MyCheckBoxCellName" && dataGridView.Columns[e.ColumnIndex].Value) {
// Disable your Timer
refresher.Enabled = false;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.