繁体   English   中英

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

[英]how to check, checkbox is check or not in C# winform

 DataGridViewCheckBoxColumn GvCheckBox = new DataGridViewCheckBoxColumn();
        doWork.HeaderText = "Approved Cheque";
        doWork.FalseValue = "0";
        doWork.TrueValue = "1";
GvViewPendingCheque.Columns.Insert(0, doWork);
        GvViewPendingCheque.DataSource = objDataSet.Tables[0];

它的工作良好的复选框列已添加到带有db数据的网格中,我想更新选中​​复选框的所有行的数据

MyTable列:PaymentStatus MyTable数据:待处理

当管理员检查时,复选框PaymentStatus将更新为已批准,而不是待处理,请帮助我,我已经尝试过此代码,但无法正常工作:

  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循环中尝试将字符串转换为boolean一样,将抛出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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM