C# dataGridView中怎么样动态改变列的值

我的dataGridView中的表有10列,其中第3列(可编辑)是“数量”,第5列是“价格”,第8列是“总价”,总价=数量*价格,我现在要直接改变dataGridView... 我的dataGridView中的表有10列,其中第3列(可编辑)是“数量”,第5列是“价格”,第8列是“总价”,总价=数量*价格,我现在要直接改变dataGridView中数量那一列的某个值,同一行的总价也发生改变,(是直接在dataGridView的表中编辑修改数量那一列,而不是通过其他控件)这样可以实现吗??哪位高手教下啊!!! 展开
 我来答
Leaving7
推荐于2016-08-28 · TA获得超过123个赞
知道答主
回答量:66
采纳率:0%
帮助的人:87.6万
展开全部
DataGridView的CelEndEdit事件可以满足你的要求,

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 2)
{
try
{
double price = Convert.ToDouble(dataGridView1.Rows[e.RowIndex].Cells[4].Value);
int count = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[2].Value);
double total = price * count;
dataGridView1.Rows[e.RowIndex].Cells[7].Value = total;
}
catch
{
return;
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hanyuetaxue
2010-04-16 · 超过11用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:20.5万
展开全部
如果是在 winform 中,使用RowPrePaint
this.dataGridView1.RowPrePaint+=new DataGridViewRowPrePaintEventHandler(dataGridView1_RowPrePaint);

定义
private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
if (e.RowIndex > dataGridView1.Rows.Count - 1) return;
DataGridViewRow dgr = dataGridView1.Rows[e.RowIndex];
// dgr.Cells[6].Value 第7个单元格,
//在此重新计算
}
如果是在web中,使用RowDataBound
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忆语阡寻
2010-04-16 · TA获得超过1167个赞
知道小有建树答主
回答量:483
采纳率:50%
帮助的人:337万
展开全部
问一下,你的总价是怎么绑定上去的,如果有公式,那你改变了之后,在重新绑定一下,就行。如果没有,在RowDataBound中写一下他的计算公式,就是获取列中的值来计算,在UpdateDataBound中再写一下重新绑定。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式