以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  加载表后为什么非要重新打开一次窗口才能发挥作用?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=110095)

--  作者:kaituozhe
--  发布时间:2017/11/26 13:05:00
--  加载表后为什么非要重新打开一次窗口才能发挥作用?

方法二:AfterLoad事件

 

If DataTables.Contains("表A") = False Then
    DataTables.Load("表A")
    e.Form.Visible = False
    e.Form.close
    e.Form.Show
    \'basemainform.AddOwnedForm(e.Form.BaseForm)
End If

 

我是用以下代码打开窗口的,要实现上述代码的目的,需要怎么修改

If e.Node.Level = 1 Then
    Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")
    If tab.TabPages(e.Node.Text) IsNot Nothing Then
        tab.SelectedPage = tab.TabPages(e.Node.Text)
    Else
        Dim Name As String = e.Node.Text
        tab.TabPages.Add(name,name)
        Dim pb = tab.BaseControl
        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.TabPages(name).Controls.Clear
        PB.TabPages(name).Controls.add(Forms(Name).BaseForm)
        tab.SelectedPage = tab.TabPages(name)
        vars("父tab") = tab
    End If
End If


--  作者:有点甜
--  发布时间:2017/11/26 16:39:00
--  

不能在afterLoad事件写代码。

 

必须在打开窗口之前,把表格加载进去。