以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教:动态生成的窗口工具栏与表问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148676)

--  作者:y2287958
--  发布时间:2020/4/13 10:53:00
--  请教:动态生成的窗口工具栏与表问题

如题。具体见附件。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.table

一、说明:用以下代码可以生成一个窗口、工具栏和表

\'\'\'
Forms("窗口1").Close
Forms("窗口1").Open(-1000,-1000)

Dim 窗口 As New system.Windows.Forms.Form  \'声明动态窗口
窗口.Text = "恢复删除记录"
窗口.Width = 500   \'宽度
窗口.Height = 400   \'高度
Dim 工具栏 As WinForm.Strip = Forms("窗口1").Strips.Add("工具栏_表A", 1)
窗口.controls.add(工具栏.basecontrol)
\'窗口.parent.controls.add(工具栏.basecontrol)  \'原来这个用法是可以的,这里

If DataTables.Contains("窗口1_表A") Then DataTables.Unload("窗口1_表A")
Dim 窗口表 As WinForm.Table = Forms("窗口1").CreateSQLQuery("表A", "S elect * From {表A}", "")  \'生成[已删除]且为[今天]记录的表
窗口表.Dock = 5  \'充满
Forms("窗口1").AddControl(窗口表)
窗口.Controls.Add(窗口表.BaseControl)

窗口.Show

二、问题:窗口工具栏遮住了窗口表的表头。

1、在窗口表Dock设置为充满时,如何避免工具栏遮住了表头?

2、原来这个用法是可以的:窗口.parent.controls.add(工具栏.basecontrol),但在这里却出现以下提示。

---------------------------
版本:2020.1.19.19
---------------------------
代码执行出错,错误信息:  System.NullReferenceException: Object reference not set To an instance of an object.    at UserCode.Test()
---------------------------
确定  
---------------------------

如何解决?谢谢


--  作者:有点蓝
--  发布时间:2020/4/13 11:05:00
--  
1、把窗口表控件设置为顶层,什么设置自己查.net的文档

2、声明的动态窗口是一个单独的窗口,默认是不可能有parent属性的,也就是parent是空值,不理解为什么以前可以!

foxtable的独立窗口也是一样的道理,是不可能有parent的
Output.Show(Forms("窗口2").baseform.parent Is Nothing)

--  作者:y2287958
--  发布时间:2020/4/13 14:04:00
--  
图片点击可在新窗口打开查看