gpt4 book ai didi

C# DataGridView Checkbox 勾选事件

转载 作者:太空狗 更新时间:2023-10-30 00:39:38 25 4
gpt4 key购买 nike

我想处理 DataGridViewCheckBox 列的 Checked 事件,并根据列检查值(真/假)执行操作.我尝试使用 CellDirtyStateChanged 但没有成功。事实上,我想在用户选中或取消选中复选框后立即检测选中的更改。

这是关于我的应用程序的描述。我是 c# 的新手,正在为一个为旅行者提供客房的地方制作一个“预订我的房间”应用程序。此屏幕可以很好地解释我希望实现的目标;

这是一个 .GIF of a software它计算员工的时薪,这张照片说明了我实际想要构建的东西: This Photo is an illustration of what actually i want to build

DataGridView 中显示我的表格的代码是:

OleDbConnection connection = new OleDbConnection();
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
string query = "select id,cusid,cusname,timein,
timeout,duration,amount,remark from entry";
command.CommandText = query;
OleDbDataAdapter da = new OleDbDataAdapter(command);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;

我用这个添加了复选框列;

DataGridViewCheckBoxColumn checkColumn = new DataGridViewCheckBoxColumn();
checkColumn.Name = "logout";
checkColumn.HeaderText = "Logout";
checkColumn.Width = 50;
checkColumn.ReadOnly = false;
checkColumn.FillWeight = 10;
dataGridView1.Columns.Add(checkColumn);

每当用户从登录屏幕登录时,表中将插入一个新行,因此 dgv 将更新,并带有相应的用户条目。我不明白如何将这些复选框与 datagridview 链接我尝试了 celldirtystatechanged 但没有任何效果,将行与复选框相关联的正确方法是什么。

最佳答案

你可以处理CellContentClick DataGridView 的事件,并将更改这些单元格的逻辑放在那里。

关键点是使用CommitEdit(DataGridViewDataErrorContexts.Commit)在不结束编辑模式的情况下将当前单元格中的更改提交到数据缓存。这样,当您在此事件中检查单元格的值时,它会返回您在单击后当前在单元格中看到的当前选中或未选中的值:

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
//We make DataGridCheckBoxColumn commit changes with single click
//use index of logout column
if(e.ColumnIndex == 4 && e.RowIndex>=0)
this.dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);

//Check the value of cell
if((bool)this.dataGridView1.CurrentCell.Value == true)
{
//Use index of TimeOut column
this.dataGridView1.Rows[e.RowIndex].Cells[3].Value = DateTime.Now;

//Set other columns values
}
else
{
//Use index of TimeOut column
this.dataGridView1.Rows[e.RowIndex].Cells[3].Value = DBNull.Value;

//Set other columns values
}
}

关于C# DataGridView Checkbox 勾选事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34090190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com