小妹请教DataGrideView改变某列值计算问题。

wangtiantian23 2009-11-27 10:08:18
我绑定了两列数据。
我改变数量那列数值的时候,我想联动经过计算改变总数那列值。

例如:
改变前 改变后
数量 总数 数量 总数
1 10 10 100

其实就是数量乘以10直接改变总数那列的值。
10*10=100 就是总数的值。
不知道我描述清楚了没有!请各位前辈指正。

DataGridViewTextBoxColumn txtNum = new DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn txtCount = new DataGridViewTextBoxColumn();

private void Form1_Load(object sender, EventArgs e)
{
txtNum.DataPropertyName = "Num";
txtNum.HeaderText = "数量";
txtCount.DataPropertyName = "Count";
txtCount.HeaderText = "总数";

dataGridView1.Columns.AddRange(new DataGridViewColumn[] { txtNum, txtCount });

dataGridView1.DataSource = DataGridBindData();
}

private DataTable DataGridBindData()
{
DataTable dtData = new DataTable();
dtData.Columns.Add("Num",typeof(int));
dtData.Columns.Add("Count",typeof(int));
DataRow drData;
drData = dtData.NewRow();
drData[0] = 1;
drData[1] = 10;
dtData.Rows.Add(drData);
drData = dtData.NewRow();
drData[0] = 2;
drData[1] = 20;
dtData.Rows.Add(drData);
drData = dtData.NewRow();
drData[0] = 3;
drData[1] = 30;
dtData.Rows.Add(drData);
return dtData;
}
...全文
93 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ctwei86 2009-11-27
  • 打赏
  • 举报
回复
思路应该是DataGrideView的KeyPress事件,在这个事件里面可以获取按下的键值(是ASCII码),用Convert.ToInt32()转换成对应的整数。然后在事件中作相应的计算就行了。
gjw_8888 2009-11-27
  • 打赏
  • 举报
回复
不是可以定义计算列吗?
column("count")=column("num")*10
wangtiantian23 2009-11-27
  • 打赏
  • 举报
回复
哪位前辈知道!是不是应该用DataGrideView的什么事件吧!
wangtiantian23 2009-11-27
  • 打赏
  • 举报
回复
错误!我解决了!
在CellValueChanged这个事件里!
private void dgvPrice_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
try
{
if (e.ColumnIndex == 9)//判断一下是否是定量那一列
{
float count = Convert.ToInt32(this.dgvPrice.Rows[e.RowIndex].Cells[9].Value) * (float)this.dgvPrice.Rows[e.RowIndex].Cells[6].Value;
this.dgvPrice.Rows[e.RowIndex].Cells[10].Value = Math.Round(count,2);
}
}
catch (Exception ex)
{

}
}

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧