主题:mshflexgrid如何 自动计算前几列的乘积值
freefly2
[专家分:0] 发布于 2008-01-13 19:35:00
如:列1为 数量,列2为 单价;列1和2的数值是通过 mshflexgrid1.textmatrix(row,col)赋予的,(而不是手工通过什么文本框等输入的,所以不会簇发leavecell等事件),如何自动计算出第3列金额的值呢。类似excel的自动计算。
回复列表 (共6个回复)
沙发
FieldMAX [专家分:12740] 发布于 2008-01-13 20:19:00
在赋予textmatrix(row,col)时直接计算
板凳
老大徒伤悲 [专家分:29120] 发布于 2008-01-13 20:23:00
示例代码如下:
Private Sub Command1_Click()'这是计算过程
For i = 1 To 9
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 1
a = MSFlexGrid1.Text
MSFlexGrid1.Col = 2
b = MSFlexGrid1.Text
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = a * b
Next i
End Sub
Private Sub Form_Load()'这是初始化过程
Command1.Caption = "计算"
MSFlexGrid1.Cols = 4
MSFlexGrid1.Rows = 10
For i = 1 To 9
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = i
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = i + 1
Next i
End Sub
3 楼
FieldMAX [专家分:12740] 发布于 2008-01-13 21:06:00
[quote]示例代码如下:
Private Sub Command1_Click()'这是计算过程
For i = 1 To 9
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 1
a = MSFlexGrid1.Text
MSFlexGrid1.Col = 2
b = MSFlexGrid1.Text
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = a * b
Next i
End Sub
Private Sub Form_Load()'这是初始化过程
Command1.Caption = "计算"
MSFlexGrid1.Cols = 4
MSFlexGrid1.Rows = 10
For i = 1 To 9
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = i
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = i + 1
Next i
End Sub
[/quote]
mshflexgrid1.textmatrix(row,col)=mshflexgrid1.textmatrix(row,col) + mshflexgrid1.textmatrix(row,col)
这样就可以,可以不用事先定位
4 楼
老大徒伤悲 [专家分:29120] 发布于 2008-01-13 21:16:00
田野,你说得对。
只是,我不会使用你的那个方法。发了回帖才看到你的方法。嘿嘿
5 楼
freefly2 [专家分:0] 发布于 2008-01-15 20:29:00
谢谢!~不是自动化的呀。需要点按钮。
6 楼
老大徒伤悲 [专家分:29120] 发布于 2008-01-15 20:42:00
你如果把代码放到数据网格的变化事件里,就成为自动的。
但副作用是,你在意格里输入12的话,按下1,代码运行一次,按下2代码又运行一次。很不“经济”。
我来回复