以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]每一窗口的菜单按钮刚开始必须按两下才能使用,关闭窗口重新打开又得按两下,有项目  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88097)

--  作者:zhengboxin
--  发布时间:2016/7/27 9:01:00
--  [求助]每一窗口的菜单按钮刚开始必须按两下才能使用,关闭窗口重新打开又得按两下,有项目

每一个使用了窗口菜单的窗体,第一次打开的时候,无论使用任何一个菜单按钮,都必须点了一下后,重新再点击一下,

也就是第一下是没有生效的,然后无论你点击任何按钮都可以正常使用了。

但是关闭窗口后,重新再打开还得重复一次刚刚的操作。

 

但是在预览的时候是没有问题的,我把窗体加到主窗体后才这样,这是bug还是我的代码需要修改,麻烦各位老师解答下,

如果有空直接帮我修改一下菜单那里的代码,如果是我的代码问题应该就是菜单那里的代码不对,

万分感谢!

 

 

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


--  作者:大红袍
--  发布时间:2016/7/27 9:12:00
--  

Dim tab As WinForm.TabControl = Forms("主界面").Controls("导航")
tab.Select

For ig As Integer = 0 To tab.TabPages.Count -1
    If Forms("主界面").Controls("导航").TabPages(ig).text = "窗口1" Then
        Forms("主界面").Controls("导航").SelectedIndex = ig
        Return
    End If
Next
Dim Name As String = "窗口1"

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)


--  作者:zhengboxin
--  发布时间:2016/7/27 9:24:00
--  
红袍老师,改了代码后结果还是一样
--  作者:zhengboxin
--  发布时间:2016/7/27 9:33:00
--  

谢谢老师,我把

这个代码

tab.Select

放到最后就可以了,放上面确实不行,麻烦了,赞一个


--  作者:大红袍
--  发布时间:2016/7/27 9:33:00
--  

Dim tab As WinForm.TabControl = Forms("主界面").Controls("导航")
For ig As Integer = 0 To tab.TabPages.Count -1
    If tab.TabPages(ig).text = "窗口1" Then
        tab.SelectedIndex = ig
        tab.Form.Select
        tab.Select
        Return
    End If
Next
Dim Name As String = "窗口1"

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)
tab.Form.Select
tab.Select