C# datagridview 单元格内值改变时触发了哪些事件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# datagridview 单元格内值改变时触发了哪些事件相关的知识,希望对你有一定的参考价值。
我要知道是触发哪个事件,我想在那个事件下做一些事情,如在窗体标题上加个*等
我要问的是WinForm里的DataGridView 不是 ASP.NET中的 Gridview呢,不过也谢谢大家了啊!!!我想了其他的方法。
OnRowUpdating事件 update数据到数据库之前就执行你写入的代码
看你用哪个了 参考技术B 你重写这个datagridview的单元格DataGridViewCell的OnLeave方法,判断值改变了没有本回答被提问者和网友采纳 参考技术C 事件里的,‘OnChange’事件
20161014001 DataGridView 单元格内容 自动计算
private void T_Form_CY_CBD_D_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (T_Form_CY_CBD_D.Rows.Count > 0 && e.RowIndex >= 0)
{
// 计算制造成本的公式依据:工费率/产能/直通率.
if (T_Form_CY_CBD_D.Rows[e.RowIndex].Cells[e.ColumnIndex].OwningColumn.Name == "DFWorkRate" || T_Form_CY_CBD_D.Rows[e.RowIndex].Cells[e.ColumnIndex].OwningColumn.Name == "DFCapacity" || T_Form_CY_CBD_D.Rows[e.RowIndex].Cells[e.ColumnIndex].OwningColumn.Name == "DFFPY")
{
try
{
T_Form_CY_CBD_D.Columns["DFManufacturingCost"].ReadOnly = true;
if (T_Form_CY_CBD_D.Rows[e.RowIndex].Cells["DFWorkRate"].Value.ToString().Trim() == "")
{
T_Form_CY_CBD_D.Rows[e.RowIndex].Cells["DFWorkRate"].Value = "1";
}
if (T_Form_CY_CBD_D.Rows[e.RowIndex].Cells["DFCapacity"].Value.ToString().Trim() == "")
{
T_Form_CY_CBD_D.Rows[e.RowIndex].Cells["DFCapacity"].Value = "1";
}
if (T_Form_CY_CBD_D.Rows[e.RowIndex].Cells["DFFPY"].Value.ToString().Trim() == "")
{
T_Form_CY_CBD_D.Rows[e.RowIndex].Cells["DFFPY"].Value = "1";
}
T_Form_CY_CBD_D.Rows[e.RowIndex].Cells["DFManufacturingCost"].Value =
System.Convert.ToDecimal(T_Form_CY_CBD_D.Rows[e.RowIndex].Cells["DFWorkRate"].Value) /
System.Convert.ToDecimal(T_Form_CY_CBD_D.Rows[e.RowIndex].Cells["DFCapacity"].Value) /
System.Convert.ToDecimal(T_Form_CY_CBD_D.Rows[e.RowIndex].Cells["DFFPY"].Value);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
// 计算浪费成本的公式依据: (制造成本)*(1-效率)/ 效率)
if (T_Form_CY_CBD_D.Rows[e.RowIndex].Cells[e.ColumnIndex].OwningColumn.Name == "DFManufacturingCost"
|| T_Form_CY_CBD_D.Rows[e.RowIndex].Cells[e.ColumnIndex].OwningColumn.Name == "DFEfficiency")
{
try
{
T_Form_CY_CBD_D.Columns["DFWasteCost"].ReadOnly = true;
if (T_Form_CY_CBD_D.Rows[e.RowIndex].Cells["DFManufacturingCost"].Value.ToString().Trim() == "")
{
T_Form_CY_CBD_D.Rows[e.RowIndex].Cells["DFManufacturingCost"].Value = "0.00";
}
if (T_Form_CY_CBD_D.Rows[e.RowIndex].Cells["DFEfficiency"].Value.ToString().Trim() == "")
{
T_Form_CY_CBD_D.Rows[e.RowIndex].Cells["DFEfficiency"].Value = "1";
}
T_Form_CY_CBD_D.Rows[e.RowIndex].Cells["DFWasteCost"].Value =
System.Convert.ToDecimal(T_Form_CY_CBD_D.Rows[e.RowIndex].Cells["DFManufacturingCost"].Value) *
(1 - System.Convert.ToDecimal(T_Form_CY_CBD_D.Rows[e.RowIndex].Cells["DFEfficiency"].Value)) /
System.Convert.ToDecimal(T_Form_CY_CBD_D.Rows[e.RowIndex].Cells["DFEfficiency"].Value);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
//
}
}
以上是关于C# datagridview 单元格内值改变时触发了哪些事件的主要内容,如果未能解决你的问题,请参考以下文章
C# 中 form 编程 datagridview 值改变时触发的事件