Foxtable(狐表)用户栏目专家坐堂 → [求助]窗口中打开窗口出错


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

主题:[求助]窗口中打开窗口出错

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
[求助]窗口中打开窗口出错  发帖心情 Post By:2017/10/23 10:07:00 [只看该作者]

在窗口管理直接打开窗口正常:

Forms("流程管理").Open

 

在主界面的窗口中打开窗口报错,以前没报过错,不知哪里原因?

Forms("导航窗口").Controls("SplitContainer2").Panel1Collapsed = True  '隐藏导航栏

Dim PB As WinForm.Panel = e.Form.Controls("Panel4")
Dim Name As String = "流程管理"
Forms(Name).OPEN(-1000,-1500)
Forms(Name).BaseForm.TopLevel = False
Forms(Name).BaseForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
'Forms(Name).BaseForm.Dock = System.Windows.Forms.DockStyle.Fill
'PB.BaseControl.Controls.Clear
PB.BaseControl.Controls("panel5").visible = False
PB.BaseControl.Controls.add(Forms(Name).BaseForm)
Forms(Name).BaseForm.left = (pb.width-Forms(Name).BaseForm.width) / 2
Forms(Name).BaseForm.top = (pb.height-Forms(Name).BaseForm.height) / 2

Forms("流程管理").Open

 

 


图片点击可在新窗口打开查看此主题相关图片如下:dd.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/23 10:31:00 [只看该作者]

 你的流程管理窗口,要设置成【独立】类型的窗口。

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2017/10/23 15:39:00 [只看该作者]

是独立窗口。改了两行窗口的afterload代码出现的这种情况:

 

原代码:

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(e.Form.Controls("Table1").Table.DataTable, "承办人|是否结案|审判程序")      '窗口中副本表的筛选树
trv.Nodes.Insert("显示所有行",0)

 

改动代码:

Dim Filter As String
Tables("流程管理_Table1").Filter = Filter
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(e.Form.Controls("Table1").Table.DataTable, "承办人|是否结案|审判程序",Filter)      '窗口中副本表的筛选树
trv.Nodes.Insert("显示所有行",0)

 

我考虑项目启动时有个加载代码,就又改回去了。虽然不报错了,但是不知道怎么造成的,因为这个窗口不在主窗口打开时,也都正常。

 

 

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/23 16:00:00 [只看该作者]

 如果报错,那就加上msgbox定位出错位置。凭你所说,无法确定你哪里出问题。


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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2017/10/23 16:43:00 [只看该作者]

窗口的afterload没有错,但运行了一遍代码没有能够打开窗口,也没有在期间报错。造成此情况的代码就是上上一层楼加黑的代码。

 

报错是在点击返回按钮时,报的错。

返回主窗口代码:

For Each frm As WinForm.Form In Forms
        If frm.Name <> "导航窗口" Then
        frm.Close
    End If
Next
Forms("导航窗口").show()
e.Form.Controls("Panel5").basecontrol.visible = True
e.Form.Controls("Panel5").basecontrol.BringToFront '置前
'e.Form.Controls("Panel5").basecontrol.SendToBack  '置后

Forms("导航窗口").Controls("SplitContainer2").Panel1Collapsed = False

Ctype(ApplicationMenu.LeftItems("Save"), RibbonMenu.Button).PerformClick()   '保存项目

 

 

[此贴子已经被作者于2017/10/23 16:45:35编辑过]

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2017/10/23 16:54:00 [只看该作者]

窗口的afterload代码,没有加黑处的代码时,可以打开;反之,运行虽然不报错,但在主窗口内打不开窗口。单独打开此窗口可以。:

 

AddHandler e.Form.Panel.MouseDown,AddressOf Panel_MouseDown   '无边框移动
e.form.BaseForm.FormBorderStyle = Windows.Forms.FormBorderStyle.None

e.Form.BaseForm.ShowInTaskbar = True

 

e.form.Controls("TextBox2").basecontrol.SendToBack  '置后

e.Form.BaseForm.height = 580  '独立窗口用此
e.Form.Controls("SplitContainer1").Panel2.Collapsed = True

 

Tables("流程管理_Table1").grid.styles.Normal.Border.Color = Color.Red   '窗口表样式
Tables("流程管理_Table1").grid.styles.Normal.Border.Style = 1
Tables("流程管理_Table1").grid.styles.Normal.Border.width = 1
Tables("流程管理_Table1").grid.styles.Normal.Border.Direction = 0 '0-2
Tables("流程管理_Table1").DefaultRowHeight = 30
Tables("流程管理_Table1").AutoSizeRows
Tables("流程管理_Table1").AutoSizeHeaderRow

 

Tables("流程管理_Table2").grid.styles.Normal.Border.Color = Color.Red   '窗口表样式
Tables("流程管理_Table2").grid.styles.Normal.Border.Style = 1
Tables("流程管理_Table2").grid.styles.Normal.Border.width = 1
Tables("流程管理_Table2").grid.styles.Normal.Border.Direction = 0 '0-2
Tables("流程管理_Table2").DefaultRowHeight = 30
Tables("流程管理_Table2").AutoSizeRows
Tables("流程管理_Table2").AutoSizeHeaderRow  '自动列表题

 

With Tables("流程管理_Table2")      '合并单元格
    .MergeMode = MergeModeEnum.Standard
    .MergeCols.Clear()
    .MergeCols.Add("案号")
    .MergeCols.Add("原告")
    .MergeCols.Add("第三人")
    .MergeSort = "案号"
    .MergeSort = "原告"
    .MergeSort = "第三人"
    .AllowMerge = True
End With

msgbox(1)

 

e.Form.Controls("Table1").Table.Grid.AllowFiltering = True    '表头筛选
e.Form.Controls("TextBox1").Text = "请输入案号数字"   '文本框提示
msgbox(2)

 

Dim Filter As String
Tables("流程管理_Table1").Filter = Filter
msgbox(3)


Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(e.Form.Controls("Table1").Table.DataTable, "承办人|是否结案|审判程序",Filter)      '窗口中副本表的筛选树
trv.Nodes.Insert("显示所有行",0)
msgbox(4)


msgbox(5)
Dim rgd1 As WinForm.RecordGrid = e.Form.Controls("RecordGrid1")
rgd1.Table = Tables("流程管理_Table1") '指定绑定表
rgd1.Columns = "案号|立案日期|当事人|案由|自定义案由|行政机关|行政行为|是否经过复议|承办人|是否结案|审理天数|二审上诉_上诉日期|归档_归档日期"
rgd1.Build() '重新生成记录窗口

msgbox(6)


Dim rgd2 As WinForm.RecordGrid = e.Form.Controls("RecordGrid2")
rgd2.Table = Tables("流程管理_Table1") '指定绑定表
rgd2.Columns = "案号|承办人|审判长|其他合议庭成员|陪审员|法官助理|书记员|开庭排期_开庭时间|开庭排期_开庭地点|开庭排期_开庭次数|开庭排期_合并审理"
rgd2.Build() '重新生成记录窗口

msgbox(7)


Dim rgd3 As WinForm.RecordGrid = e.Form.Controls("RecordGrid3")
rgd3.Table = Tables("流程管理_Table1") '指定绑定表
rgd3.Columns = "案号|结案方式|裁判类型|结案日期|行政机关败诉|诉讼费减缓免|是否需要退费|退费日期|是否退费"
rgd3.Build() '重新生成记录窗口

 

msgbox(8)
Dim rgd5 As WinForm.RecordGrid = e.Form.Controls("RecordGrid5")
rgd5.Table = Tables("流程管理_Table1") '指定绑定表
rgd5.Columns = "案号|当事人|承办人|归档_归档日期|归档_是否归档|归档_卷宗册数|归档_正卷页数|归档_副卷页数"
rgd5.Build() '重新生成记录窗口

msgbox(9)

 

Dim g1 = e.Form.Controls("RecordGrid1").BaseControl
g1.Styles.normal.Border.Style = 1
g1.styles.Normal.Border.Color = Color.red
g1.styles.Normal.Border.width = 1
For Each r As object In g1.Rows
    r.Height = 36
Next
msgbox(10)

 

Dim g2 = e.Form.Controls("RecordGrid2").BaseControl
g2.Styles.normal.Border.Style = 1
g2.styles.Normal.Border.Color = Color.red
g2.styles.Normal.Border.width = 1
For Each r As object In g2.Rows
    r.Height = 42
Next


msgbox(11)
Dim g3 = e.Form.Controls("RecordGrid3").BaseControl
g3.Styles.normal.Border.Style = 1
g3.styles.Normal.Border.Color = Color.red
g3.styles.Normal.Border.width = 1
'g3.AutoSizeRows
For Each r As object In g3.Rows
r.Height = 50
Next
g3.Rows(0).Height = 50

 

msgbox(12)
Dim g5 = e.Form.Controls("RecordGrid5").BaseControl
g5.Styles.normal.Border.Style = 1
g5.styles.Normal.Border.Color = Color.red
g5.styles.Normal.Border.width = 1
'g5.AutoSizeRows
For Each r As object In g5.Rows
    r.Height = 52
Next

[此贴子已经被作者于2017/10/23 16:57:29编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/23 17:55:00 [只看该作者]

就你上面的代码,做个例子发上来测试。

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2017/10/23 22:30:00 [只看该作者]

开发版例子是外部数据,用AAA用户名登录,密码888

进入项目后,点击导航左侧按钮“流程管理”,但打不开;点击返回主页,弹出出错。

但是在窗口管理可以打开这个窗口。

 

如果进入窗口管理,将窗口的TimerTick一句代码注释掉,重进项目,就行了。

代码是:Tables("流程管理_Table1").AutoSizeRows

不知道为什么?另外会不会是数据表的问题,我删除大部分数据记录后,也可能正常,现在也不知道怎么回事了。

 

附件:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.rar


 


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

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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/23 23:27:00 [只看该作者]

窗口计时器时间太短,表格数据比较多时,Tables("流程管理_Table1").AutoSizeRows代码执行过于频繁

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2017/10/24 8:05:00 [只看该作者]

有道理,但还有一点还解释不了,就是不在主窗口中打开,而是单独打开它,没有问题。

 回到顶部
总数 15 1 2 下一页