Foxtable(狐表)用户栏目专家坐堂 → [求助]报错,状态栏3自动计算上


  共有3632人关注过本帖树形打印复制链接

主题:[求助]报错,状态栏3自动计算上

帅哥哟,离线,有人找我吗?
jijianjsj
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:268 积分:2227 威望:0 精华:0 注册:2013/2/4 11:02:00
[求助]报错,状态栏3自动计算上  发帖心情 Post By:2013/4/25 11:02:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:未命名.bmp
图片点击可在新窗口打开查看

 

模仿原有系统菜单做的状态栏3自动计算报错,上图是什么原因。


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/25 11:03:00 [只看该作者]

索引超出范围了.把你代码发上来看看.代码有问题.

 回到顶部
帅哥哟,离线,有人找我吗?
jijianjsj
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:268 积分:2227 威望:0 精华:0 注册:2013/2/4 11:02:00
  发帖心情 Post By:2013/4/25 11:09:00 [只看该作者]

SystemIdle 事件:
If CurrentTable Is Nothing Then
    Return
End If
'以下代码用于在状态栏显示自动计算结果,如果不需要自动计算,可删除这一段
Dim t As Table = CurrentTable
If Vars("SysUpdateAggregate")
    If Windows.Forms.Control.MouseButtons <> Windows.Forms.MouseButtons.None OrElse Windows.Forms.Control.ModifierKeys <> Windows.Forms.Keys.None Then
        Return
    End If
    Dim Str1 As String = ""
    Vars("SysUpdateAggregate") = False
    Str1 = Str1 & "计数:" & t.Aggregate(AggregateEnum.Count, t.TopRow, t.LeftCol, t.BottomRow, t.RightCol) & " "
    Str1 = Str1 & "累计:" & t.Aggregate(AggregateEnum.Sum, t.TopRow, t.LeftCol, t.BottomRow, t.RightCol) & " "
    Str1 = Str1 & "平均:" & t.Aggregate(AggregateEnum.Average, t.TopRow, t.LeftCol, t.BottomRow, t.RightCol) & " "
    RibbonMenu.StatusBar.Message3 = Str1
End If


AfterSelRangeChange事件:

Dim t As Table
RibbonMenu.StatusBar.Message3 = ""
Vars("SysUpdateAggregate") = False
If e.Table IsNot CurrentTable OrElse CurrentTable Is Nothing Then
    Return
Else
    t = CurrentTable
End If
If t.TopRow = t.BottomRow AndAlso t.LeftCol = t.RightCol Then
    Return
End If
For c As Integer = t.LeftCol To t.RightCol 
    If c < 1 Then
        Continue For
    End If
    If t.Cols(c).IsNumeric = False Then
        Return
    End If
Next
Vars("SysUpdateAggregate") =  True

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/25 11:12:00 [只看该作者]

看上去没发生问题啊. 把文件发上来看看

 回到顶部
帅哥哟,离线,有人找我吗?
jijianjsj
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:268 积分:2227 威望:0 精华:0 注册:2013/2/4 11:02:00
  发帖心情 Post By:2013/4/25 14:07:00 [只看该作者]

重启一下电脑又好了,唉,莫名其妙~!

 回到顶部
帅哥哟,离线,有人找我吗?
铜豌豆之首
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:91 积分:732 威望:0 精华:0 注册:2016/3/8 11:20:00
  发帖心情 Post By:2017/4/1 14:26:00 [只看该作者]

If CurrentTable Is Nothing Then
    Return
End If
Dim t As Table = CurrentTable
If Vars("SysUpdateAggregate")
    If Windows.Forms.Control.MouseButtons <> Windows.Forms.MouseButtons.None OrElse Windows.Forms.Control.ModifierKeys <> Windows.Forms.Keys.None Then
        Return
    End If
    Dim Str1 As String = ""
    Vars("SysUpdateAggregate") = False
老师能否详解一下上面的代码,无论是帮助还是站内信息,都看了好几遍,还是理解不了,特别是有底纹的地方

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107178 积分:545139 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/4/1 15:32:00 [只看该作者]

If Vars("SysUpdateAggregate") '如果变量值为true    

If Windows.Forms.Control.MouseButtons <> Windows.Forms.MouseButtons.None OrElse Windows.Forms.Control.ModifierKeys <> Windows.Forms.Keys.None Then '如果鼠标按钮被按住或者键盘功能键被按住       
Return   
End If    
Dim Str1 As String = ""    
Vars("SysUpdateAggregate") = False '把变量值为改为false。避免重复运行

 回到顶部