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


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

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

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


加好友 发短信
等级:小狐 帖子:335 积分:2674 威望:0 精华:0 注册:2018/11/22 9:19:00
  发帖心情 Post By:2020/8/7 19:52:00 [显示全部帖子]

问一下老师
  1  这个能关闭 通过这种方式加入的窗口吗?
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

2 老师 能帮我们修改一下关闭那个X的样式吗?这种红色的和我的软件界面严重不搭。
  不动作  白底 黑X   鼠标经过 黑X 小灰底  按下重灰底  用圆 不用椭圆

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

[此贴子已经被作者于2020/8/7 20:01:03编辑过]

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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
nxhylczh
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

老师  在线等。。。。。

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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
nxhylczh
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


 回到顶部
帅哥哟,离线,有人找我吗?
nxhylczh
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 回到顶部