社区
C#
帖子详情
计算datagrid中的值
worldofmy
2006-11-11 09:40:15
datagrid中有单价,数量,金额这3列 要求在输入单价和数量之后自动计算值并放到金额这一列,该怎么实现?我用的是vs.net 2003 应该怎么样添加单元格改变事件 右键控件 弹出后的菜单没有“添加事件处理程序”这一项
...全文
133
15
打赏
收藏
计算datagrid中的值
datagrid中有单价,数量,金额这3列 要求在输入单价和数量之后自动计算值并放到金额这一列,该怎么实现?我用的是vs.net 2003 应该怎么样添加单元格改变事件 右键控件 弹出后的菜单没有“添加事件处理程序”这一项
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
worldofmy
2006-11-11
打赏
举报
回复
谢谢各位
worldofmy
2006-11-11
打赏
举报
回复
呵呵 楼上两位都太厉害了 只不过代码太多 都看花眼了 呵呵 谢谢各位给的详细解答 我再试试啊 不过我是直接在form中拖上一个datagrid 然后就不管了 (也不会设置) 然后填充一个dataset 然后 datagrid1.datasource=ds,datagrid1.setdatabinding(ds,tabel)就这样啊
yao991118
2006-11-11
打赏
举报
回复
我还说你看明白了给你说下面的呢!!
jacobwc
2006-11-11
打赏
举报
回复
一个绑定例子
//----------绑定数据并设置表格各列的属性----------
private void DataGridStateControl()
{
newTable = new DataTable();
newTable.Columns.Add("生产批次",typeof(string)); //0
newTable.Columns.Add("报废数",typeof(decimal)); //4
newTable.Columns.Add("计划数",typeof(string)); //5
newTable.Columns.Add("客户名称",typeof(string)); //6
newTable.Columns.Add("单价",typeof(decimal)); //10
newTable.Columns.Add("单位面积",typeof(decimal)); //11
newTable.Columns.Add("产值元",typeof(decimal),"单价*生产数"); //运用DataTable的表达式自动运算
newTable.Columns.Add("产量m2",typeof(decimal),"单位面积*生产数");//-单位面积*报废数
this.dataGrid1.DataSource = newTable;
newTable.Rows.Add(newTable.NewRow()); //向表中添加一行
DataGridTableStyle ts = new DataGridTableStyle();//设置表格模式
DataGridTextBoxColumn aColumnTextColumn;
ts.AllowSorting = false;
ts.AlternatingBackColor = Color.LightGray; //交替显示
ts.MappingName = newTable.TableName;
int numCols = newTable.Columns.Count;
for (int i = 0;i< numCols;i++)
{
aColumnTextColumn = new DataGridTextBoxColumn();
if (i==7)
{
aColumnTextColumn.Width = 100;
aColumnTextColumn.ReadOnly=true;
}
aColumnTextColumn.MappingName = newTable.Columns[i].ColumnName;
aColumnTextColumn.HeaderText = newTable.Columns[i].ColumnName;
aColumnTextColumn.NullText = "";
aColumnTextColumn.Format = "N"; //设置为数字格式显示
ts.GridColumnStyles.Add(aColumnTextColumn);
}
this.dataGrid1.TableStyles.Add(ts);
}
jacobwc
2006-11-11
打赏
举报
回复
不用定位单元格
不知道你是怎么样绑定数据的
单元格是什么类型的在你增加单元格就知道了
yourDataTable.Columns.Add("单价",typeof(decimal));
yourDataTable.Columns.Add("数量",typeof(decimal));
至于事件
可以在yourdatagrid的属性查看事件,一个雷电附号的样子
下面有很多事件
你要增加哪一个就是对应的事件空白栏双击就行
不知道说清楚了没
worldofmy
2006-11-11
打赏
举报
回复
哎 如果能当面指点就好了
要能定位单元格 然后把两个单元格的内容* 然后附值到第三个单元格也行 但是一直不知道该怎么定位单元格 单元格的值又是什么 是什么类型的 怎么样附值? 这样可以吗 如果可以 该怎么写? 并且问一个初级问题 应该怎么样添加自带的事件处理程序 比如 应该怎么样添加单元格改变事件 右键控件 弹出后的菜单没有“添加事件处理程序”这一项
jacobwc
2006-11-11
打赏
举报
回复
晕
增加一计算列不就OK了
不用这么多事件之类
yourDataTable.Columns.Add("金额",typeof(decimal),"单价*数量");
this.dataGrid1.DataSource = yourDataTable;//绑定
当然前提是你的单价列和数量列的列名为“单价”“数量”
worldofmy
2006-11-11
打赏
举报
回复
楼上果然高手 这样的代码也能写出来 可是小弟太菜 看不懂啊 5555555555555555
yao991118
2006-11-11
打赏
举报
回复
看明白没有?
yao991118
2006-11-11
打赏
举报
回复
然后创建DATAGRID的时候为:
private MyDataGrid dgBillNote;
this.dgBillNote = new 项目.程序.MyDataGrid();
yao991118
2006-11-11
打赏
举报
回复
那么就简单多了:
你先要将你的DATAGRID改写
public class MyDataGrid : DataGrid
{
private const int WM_KEYDOWN = 0x100;
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
{
if(msg.WParam.ToInt32() == (int) Keys.Enter)
{
SendKeys.Send("{Tab}");
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
public override bool PreProcessMessage( ref Message msg )
{
Keys keyCode = (Keys)(int)msg.WParam & Keys.KeyCode;
if(msg.Msg == WM_KEYDOWN && keyCode == Keys.Delete)
{
if(MessageBox.Show("确认删除?", "确认", MessageBoxButtons.YesNo) == DialogResult.No)
return true;
}
return base.PreProcessMessage(ref msg);
}
}
worldofmy
2006-11-11
打赏
举报
回复
高手指点 急..............出汗了 !!!
worldofmy
2006-11-11
打赏
举报
回复
js我不会啊 我懂的编程知识很少 做的是windows程序
yao991118
2006-11-11
打赏
举报
回复
要开你做的是windows程序还是web程序
pkkfaii
2006-11-11
打赏
举报
回复
用js做吧。。不刷新。。后台做的话 要刷新的。。在datagrid 的ItemDataBound事件里做
FLEX的
datagrid
合计、平均
值
FLEX的
datagrid
合计、平均
值
,很好的例子代码拿来就可以用
easyui
datagrid
在编辑状态下更新列的
值
在easyui 的
datagrid
编辑状态下实时更新其他处于编辑或者没在编辑下的列
值
,并在结束编辑后得到的row的数据为更改后的数据。
easyui的
datagrid
生成合并行,合计
计算
价格
easyui的
datagrid
生成合并行,合计
计算
价格!
VB在
DataGrid
列
中
加入
计算
功能
VB在列
中
加入
计算
,
计算
利润和销售金额,在VB的数据显示控件
DataGrid
的列
中
加入
计算
的功能,大大提升了软件的体验,丰富了功能...
WPF
DataGrid
合并行
WPF
DataGrid
合并行
C#
111,096
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章