[英]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转换为布尔值将返回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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.