Foxtable(狐表)用户栏目专家坐堂 → 关于动态添加和删除TabControl里的page的问题


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

主题:关于动态添加和删除TabControl里的page的问题

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


加好友 发短信
等级:小狐 帖子:335 积分:2674 威望:0 精华:0 注册:2018/11/22 9:19:00
  发帖心情 Post By:2020/8/8 9:26:00 [只看该作者]

老师,麻烦您将水红色的填充颜色 改为灰色,像图片所示的那样。谢谢您
d
图片点击可在新窗口打开查看此主题相关图片如下:无标1题.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:小狐 帖子:335 积分:2674 威望:0 精华:0 注册:2018/11/22 9:19:00
  发帖心情 Post By:2020/8/8 10:23:00 [只看该作者]

'***************** 这是一个项目MainPages的设置类 ***********************
'包含一个自定义的关闭按钮
'包含系统的TabPages的样式绘制的方法


'************ 下列变量用于设置页签的颜色,可以自定义 *****************************
Public _MainPagesTabBackColor As Color = Color.MediumAquamarine '标签背景色
Public _MainPagesTabBackColorSelected As Color = Color.white  '标签选中背景色
Public _MainPagesTabForeColor As Color = Color.Black  '标签默认文本色
Public _MainPagesTabForeColorSelected As Color = Color.Blue  '标签选中文本色
'********************************************************************************



    ''' <summary>
    ''' 计算按钮的矩形路径      
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Private Function GetRoundedRectPath(ByVal rect As Rectangle) As System.Drawing.Drawing2D.GraphicsPath
        rect.Offset(1, 1)
        Dim RoundRect As New Rectangle(rect.Location, New Size(_Radius - 2 , _Radius - 2))
        Dim path As New System.Drawing.Drawing2D.GraphicsPath
        path.AddArc(RoundRect, 180, 80)     '左上角
        RoundRect.X = rect.Right - _Radius   '右上角
        path.AddArc(RoundRect, 260, 80)
        RoundRect.Y = rect.Bottom - _Radius  '右下角
        path.AddArc(RoundRect, 0, 80)
        RoundRect.X = rect.Left             '左下角
        path.AddArc(RoundRect, 80, 80)
        path.CloseFigure()
        Return path
    End Function

  

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


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


加好友 发短信
等级:小狐 帖子:335 积分:2674 威望:0 精华:0 注册:2018/11/22 9:19:00
  发帖心情 Post By:2020/8/8 11:13:00 [只看该作者]

老师  在线等。。。。。

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


加好友 发短信
等级:小狐 帖子:335 积分:2674 威望:0 精华:0 注册:2018/11/22 9:19:00
  发帖心情 Post By:2020/8/8 11:14:00 [只看该作者]

我有严重的强迫证。。。。。

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


加好友 发短信
等级:超级版主 帖子:106152 积分:539877 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/8 14:11:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:tabcontrol关闭按钮.zip


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


加好友 发短信
等级:小狐 帖子:335 积分:2674 威望:0 精华:0 注册:2018/11/22 9:19:00
  发帖心情 Post By:2020/8/8 20:42:00 [只看该作者]

非常感谢老师,但是我把你的 代码复制进去后,还是出现上图所示的第二种情况  鼠标进入Tab页面的时候,会显示一个白色的正方形
我用的是这种方式将窗口加入到Tab中的
Dim name As String = Args(0)
'msgbox(name)
Dim text As String = Args(1)
Dim tab As WinForm.TabControl = forms("主窗口").Controls("TabControl1")
If tab.TabPages(name) Is Nothing Then
    tab.TabPages.Add(name,text)
    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.Select
Else
    tab.SelectedPage = tab.TabPages(name)
    tab.Select
End If

另问  点X 后是隐藏Tab  我需要的是关闭,并将所加入的窗口也一并关闭

我原来是单独做了一个X按钮  里面的代码是
If forms("主窗口").Opened Then
    Dim tabp01 As WinForm.TabControl = forms("主窗口").Controls("TabControl1")
    If tabp01.TabPages("辅助核算管理") IsNot Nothing Then
        e.Form.Close
        tabp01.TabPages.Delete("辅助核算管理")
    End If
End If


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


加好友 发短信
等级:超级版主 帖子:106152 积分:539877 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/9 20:03:00 [只看该作者]

注意查看afterload事件

关闭窗口参考20楼实例里的用法

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


加好友 发短信
等级:小狐 帖子:335 积分:2674 威望:0 精华:0 注册:2018/11/22 9:19:00
  发帖心情 Post By:2020/8/10 10:36:00 [只看该作者]

afterload 事件
vars("窗口") = e.Form.panel
e.Form.panel.Controls.add(_SysCloseBut)
Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")
Dim mp As C1Command.C1DockingTab = tab.BaseControl
mp.Padding = New Point(_SysCloseBut.width,6)
AddHandler mp.Paint, AddressOf MainPages_Paint

For Each pg As WinForm.TabPage In tab.TabPages
    pg.TabBackColorSelected = Color.white
Next

 回到顶部
总数 28 上一页 1 2 3