如何检查,复选框是否在 C# winform 中选中
本文关键字:是否 winform 复选框 何检查 检查 | 更新日期: 2023-09-27 18:19:36
DataGridViewCheckBoxColumn GvCheckBox = new DataGridViewCheckBoxColumn();
doWork.HeaderText = "Approved Cheque";
doWork.FalseValue = "0";
doWork.TrueValue = "1";
GvViewPendingCheque.Columns.Insert(0, doWork);
GvViewPendingCheque.DataSource = objDataSet.Tables[0];
它的工作正常复选框列已添加到带有数据库数据的网格中,我想更新选中复选框的所有行的数据
我的表列:付款状态我的表数据:挂起
当管理员选中时,复选框付款状态将更新为"待处理"的"已批准状态"请帮助我,我试过这段代码,但它不起作用:
foreach (DataGridViewRow row in GvViewPendingCheque.Rows)
{
if ((bool)row.Cells[doWork.Name].Value == true)
{
MessageBox.Show("True");
}
else
{
MessageBox.Show("Failed...");
}
}
和
if ((bool)this.GvViewPendingCheque.Rows[0].Cells[0].Value == true)
{
MessageBox.Show("True");
}
else
{
MessageBox.Show("False");
}
只是想知道如何获取复选框"检查"行
您将 false 和 true 值分别设置为 "0" 和 "1"。但是,像您尝试在foreach
循环中那样将字符串转换为布尔值会引发FormatException
。
另一方面,将数字 0 和 1 转换为布尔值将返回 false
和 true
。
DataGridViewCheckBoxColumn GvCheckBox = new DataGridViewCheckBoxColumn();
GvCheckBox.FalseValue = 0; // replaced "0"
GvCheckBox.TrueValue = 1; // replaced "1"
您可以使用
:
if (Convert.ToBoolean(this.GvViewPendingCheque.Rows[0].Cells[0].Value) == true)
...
但我确信这是否是访问数据网格视图中单元格的正确方法。访问单元格 [行、列] 的更简单方法:
if (Convert.ToBoolean(this.GvViewPendingCheque[0,0].Value) == true)
如果将单元格强制转换为 DataGridViewCheckBoxCell,则应该能够使用 checked 属性来查看是否选中
cell1.checked == true