社区
C#
帖子详情
计算datagrid中的值
worldofmy
2006-11-11 09:40:15
datagrid中有单价,数量,金额这3列 要求在输入单价和数量之后自动计算值并放到金额这一列,该怎么实现?我用的是vs.net 2003 应该怎么样添加单元格改变事件 右键控件 弹出后的菜单没有“添加事件处理程序”这一项
...全文
164
15
打赏
收藏
计算datagrid中的值
datagrid中有单价,数量,金额这3列 要求在输入单价和数量之后自动计算值并放到金额这一列,该怎么实现?我用的是vs.net 2003 应该怎么样添加单元格改变事件 右键控件 弹出后的菜单没有“添加事件处理程序”这一项
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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事件里做
Gradle 1.12用户指南翻译——第四十章. ANTLR 插件
第四十章. ANTLR 插件 ANTLR 插件扩展自 Java 插件并添加了使用 ANTLR 生成语法分析器的支持。 ANTLR 插件只支持 ANTLR 版本 2。 40.1. 用法 要使用 ANTLR 插件,请在构建脚本
中
包含以下语句: 示例 40.1. 使用 ANTLR 插件 build.gradle apply plugin: 'antlr' 40.2. 任务 ANTLR 插件向你的项目添加了大量的任务,如下所示。
Gradle 1.12用户指南翻译——第二十二章. 标准的 Gradle 插件
第二十二章. 标准的 Gradle 插件 Gradle 的发行包
中
有大量的插件。如下列所示: 22.1. 语言插件 这些插件添加了让各种语言可以被编译和在JVM执行的支持。 表 22.1. 语言插件 插件 Id 自动应用 与什么插件一起使用 描述 java java-base - 向一个项目添加 Java 编译、 测试和捆绑的能力。它是很多其他 Gradle 插件的基础服务。另请参阅第 7 章, Java 快速入门。 groovy java, groovy-base - 添加对 Groovy 项
使用antlr生成语法树_如何使用ANTLR和Kotlin为您的语言创建带有语法高亮显示的编辑器...
使用antlr生成语法树 我们将要建立的 在本文
中
,我们将看到如何构建一个突出显示我们语言的语法的独立编辑器。 语法高亮功能将基于我们在第一篇文章
中
构建的ANTLR lexer。 该代码将在Kotlin
中
使用,但是应该可以轻松转换为Java。 该编辑器将命名为Kanvas 。 以前的帖子 这篇文章是有关如何创建有用的语言和所有支持工具的系列文章的一部分。 建立一个词法分析器 ...
推荐!国外程序员整理的Java资源大全
推荐!国外程序员整理的Java资源大全 发表于2015-01-09 11:01| 4616次阅读| 来源ImportNew| 48 条评论| 作者唐尤华 Java框架编程语言 <iframe src="http://hits.sinajs.cn/A1/weiboshare.html?url=http%3A%2F%2Fwww.csdn.net%2Farticle%2F2015-0...
C#
111,129
社区成员
642,540
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章