使用布尔逻辑操作datagridview数据(在C#中)
我有一个数据绑定的datagridview。单击时,将加载第二个数据绑定的datagridview,并且第二个datagridview列中的数字将乘以60。问题是,当我第二次、第三次等点击第一个datagridview时,每次数字都会乘以60。我不想发生这种事。我试过这个:使用布尔逻辑操作datagridview数据(在C#中),c#,datagridview,boolean,boolean-logic,C#,Datagridview,Boolean,Boolean Logic,我有一个数据绑定的datagridview。单击时,将加载第二个数据绑定的datagridview,并且第二个datagridview列中的数字将乘以60。问题是,当我第二次、第三次等点击第一个datagridview时,每次数字都会乘以60。我不想发生这种事。我试过这个: private Boolean _alreadyBeenMultiplied; public Boolean AlreadyBeenMultiplied { get { return _alreadyBeenMu
private Boolean _alreadyBeenMultiplied;
public Boolean AlreadyBeenMultiplied
{
get { return _alreadyBeenMultiplied; }
set
{
_alreadyBeenMultiplied = false;
}
}
private void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
double hrsToMins=(double.Parse(dgv.Rows[e.RowIndex].Cells["Hours"].Value.ToString())*60);
if(_alreadyBeenMultiplied == false)
{
if (dgv.Columns[e.ColumnIndex].Name == "Hours")
{
if (dgv.Rows[e.RowIndex].Cells["Hours"].Value.ToString() != "0")
{
e.Value = Double.Parse(e.Value.ToString()) * 60;
e.Value = (double.Parse(e.Value.ToString()));
_alreadyBeenMultiplied = true;
}
}
}
}
发生的情况是,当我第二次单击第一个dgv时,所有数字都被除以60,返回到其原始值。此外,此代码中涉及的其他列(为了简单起见,我在这里只显示了“小时”列)根本不受影响,甚至在初次单击时也不受影响。如果有人能帮忙,我会非常感激。我几乎可以肯定这是一个逻辑问题。为什么要为同一事件将e.值设置两次相同的值?此外,如果表中的值不是数字,则hrsToMins变量赋值语句应该引发异常。这也是继承datagridview的自定义控件吗?e.value=Double.Parse(e.value.ToString())*60;//使用静态解析方法将字符串转换为double并将其乘以60。e、 Value=(double.Parse(e.Value.ToString());//使用ToString方法将double转换回字符串datagridview被添加到自定义用户控件是否有任何地方可以发布其余代码以便我们可以尝试?