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

我的dataGridView中的表有10列,其中第3列(可编辑)是“数量”,第5列是“价格”,第8列是“总价”,总价=数量*价格,我现在要直接改变dataGridView中数量那一列的某个值,同一行的总价也发生改变,(是直接在dataGridView的表中编辑修改数量那一列,而不是通过其他控件)这样可以实现吗??哪位高手教下啊!!!

第1个回答  推荐于2016-08-28
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;
}
}
}本回答被提问者采纳
第2个回答  2010-04-16
如果是在 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
第3个回答  2010-04-16
问一下,你的总价是怎么绑定上去的,如果有公式,那你改变了之后,在重新绑定一下,就行。如果没有,在RowDataBound中写一下他的计算公式,就是获取列中的值来计算,在UpdateDataBound中再写一下重新绑定。

在c#中,如何使dataGridView中的数据能够修改并且保存的数据库中?
在DATAGRIDVIEW中增加数据比较简单~就是一句SQL插入语句就OK了,修改和删除数据就需要获取到当前选中行的数据,具体方法如下:在DATAGRIDVIEW的CellClick事件(单击事件)中:\/\/这就是得到当前行的第四列的数据。string data=this.dataGridView1.CurrentRow.Cells[3].Value.ToString();然后你只需要将每一...

C#中,怎样让DataGridView的 列宽 按照 列名 的长短自动变更?也就是让...
如果你的DataGridView是动态绑定数据的,那就只能在代码中设置。如果你的DataGridView列名是设计好的,那么可以在DataGridView上点击右键,选择“编辑列”,然后选中你要设置自适应的列,在它的属性列表中的“布局”选项卡里面选择AutoSizeMode的类型。AutoSizeMode属性可以设置的值还有不少:成员名称 说明 No...

在使用c#的datagridview控件时,如何确保表格内容能够
首先,调整列宽以适应内容。手动或通过代码动态计算列宽,确保所有内容都能清晰可见。其次,启用自动调整列宽功能。DataGridView提供四种自动调整列宽的选项:None、AllCells、Fill 和 BasedOnHeaders。根据需要选择合适的选项。处理数据类型不匹配问题,确保数据源中的数据与DataGridView单元格格式相匹配。使用DataGr...

c# 用linq方法怎么通过datagridview修改数据?
假设你的Linq文件已经生成(数据库文件),同时你的datagrid已经是AllowEditing=True(允许编辑,这样你双击就可以编辑)。并且存在一个主键(主键不允许修改,把主键列的ReadOnly设置为True)然后在datagrid的CellEndEdit事件这样编写: private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEvent...

C#如何对datagridview中单元格数据进行修改。要求是只修改一个单元格...
针对CellValueChanged事件编写处理代码即可。private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e){ if (e.ColumnIndex == 2)\/\/列序号为2 { dataGridView1.Rows[e.RowIndex].Cells[0].Value = "赋值1";\/\/该行第0列单元格赋值 dataGridView1.Rows[e.RowIndex...

C# 想获取datagridview中cell改变得那行和列的值
TextBox txtNo5 = (TextBox )grvView.Rows[index].Cells[5].FindControl("txtNo5"); TextBox txtNo6= (TextBox )grvView.Rows[index].Cells[6].FindControl("txtNo6");这样写法就能获取对应的index行,即你点击按钮所在的行;对应列5、6、7列的textbox的值 ...

C#修改datagridview 的值,并更新数据库
datagridview中的数值你是通过dataset和dateadapter读出来的吧,然后当做datasource给了datagridview,你可以编辑datagridview的最后一行为button,同时绑定一个函数来弹出窗体,而绑定的函数里会有你点击的是那一行,然后从dateset中读出相应一行的数据赋值给窗体。修改后点击窗体的确定,将dataset中的table【0】...

c#设置datagridview数字格式
\/\/ 获取第一列的所有单元格 foreach (DataGridViewCell cell in dataGridView1.Columns[0].Cells){ \/\/ 将单元格的值设置为数字,并根据需要设置数字格式 cell.Value = 1234.56;cell.Style.Format = "C"; \/\/ 设置为货币格式 } 您可以根据需要更改数字格式,例如将单元格格式设置为百分比、小数、...

急,急。。当我更改C#中控件dataGridView单元格后(限定一行的更改...
datagridview是没有记住行的功能的,它的行功能只有显示和隐藏,如果你想要得到你以前修改前的值和后的值就要将datagridview和datatable绑定在一起,因为只有datatable才可以保存行的状态:新添加的行(added),已经修改得行(modified),要删除的行(deleted),没改变的行(unchanged),这些状态是在没...

...数据表写入一条记录 成功后 怎样在datagridview中动态刷新...
写一个读取的方法 Get() 加到 if (rowcount > 0){ MessageBox.Show("添加成功");(this.FamilyFinaceDataSet.Consume);Get();每次添加成功后又读取一次数据 刷新内容.}

相似回答