如何检查,复选框是否在 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");
            }

只是想知道如何获取复选框"检查"行

如何检查,复选框是否在 C# winform 中选中

您将 false 和 true 值分别设置为 "0" 和 "1"。但是,像您尝试在foreach循环中那样将字符串转换为布尔值会引发FormatException

另一方面,将数字 0 和 1 转换为布尔值将返回 falsetrue

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