回 帖 发 新 帖 刷新版面

主题:mshflexgrid如何 自动计算前几列的乘积值

如:列1为 数量,列2为 单价;列1和2的数值是通过 mshflexgrid1.textmatrix(row,col)赋予的,(而不是手工通过什么文本框等输入的,所以不会簇发leavecell等事件),如何自动计算出第3列金额的值呢。类似excel的自动计算。

回复列表 (共6个回复)

沙发

在赋予textmatrix(row,col)时直接计算

板凳

示例代码如下:
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 楼

[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 楼

田野,你说得对。
只是,我不会使用你的那个方法。发了回帖才看到你的方法。嘿嘿

5 楼


谢谢!~不是自动化的呀。需要点按钮。

6 楼

你如果把代码放到数据网格的变化事件里,就成为自动的。
但副作用是,你在意格里输入12的话,按下1,代码运行一次,按下2代码又运行一次。很不“经济”。

我来回复

您尚未登录,请登录后再回复。点此登录或注册