Foxtable(狐表)用户栏目专家坐堂 → [求助]PAN 添加名称和关闭按钮及单击事件


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

主题:[求助]PAN 添加名称和关闭按钮及单击事件

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/10/13 21:58:00 [只看该作者]

多谢老师,

还有这个按钮鼠标 不指向的时候是方形 ,指向的时候是圆形和方形重合,怎么能完美的都变成圆形?

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

[此贴子已经被作者于2017/10/13 22:09:06编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/10/13 22:00:00 [只看该作者]

圆形的部分 全局代码 是这部分吗?

 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, 90)     '左上角
        RoundRect.X = rect.Right - _Radius   '右上角
        path.AddArc(RoundRect, 270, 90)
        RoundRect.Y = rect.Bottom - _Radius  '右下角
        path.AddArc(RoundRect, 0, 90)
        RoundRect.X = rect.Left             '左下角
        path.AddArc(RoundRect, 90, 90)
        path.CloseFigure()
        Return path
    End Function


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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/10/13 22:18:00 [只看该作者]

或者 
方形的关闭按钮的颜色和背景PANL的颜色一致也行,怎么写,下面不起作用
'用于绘制pan的关闭按钮
Public Sub MainPages_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs)
    Dim pg As Windows.Forms.Panel = sender
    'Dim pg As C1Command.C1DockingTabPage = Tab.SelectedTab
    If pg IsNot Nothing Then
        'Dim rect As Rectangle = tab.RectangleToScreen(pg.TabBounds)
        _SysCloseBut.Top = pg.Top + 5
        _SysCloseBut.Left = pg.Left + pg.Width - 18
        '_SysCloseBut.pg = pg
_SysCloseBut.BackColor=sender.BackColor

        _SysCloseBut.BringToFront()    
    Else
        _SysCloseBut.Top = -1000
        '_SysCloseBut.pg = Nothing    
    End If
End Sub

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


加好友 发短信
等级:超级版主 帖子:106353 积分:540906 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/13 23:00:00 [只看该作者]



    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        MyBase.OnPaint(e)

        Dim g As Graphics = e.Graphics

        '获取按钮边框路径
        Dim path As GraphicsPath = GetRoundedRectPath(e.ClipRectangle)
        Dim blueBrush As New SolidBrush(_MainPagesTabBackColorSelected)
        Select Case _ButtonState
            Case 1   '进入
                blueBrush = New SolidBrush(Color.Magenta)

            Case 2   '按下
                blueBrush = New SolidBrush(Color.Red)
        End Select
        If _ButtonState = 1 Or _ButtonState = 2 Then
            'g.FillPath(blueBrush, path)
            g.FillRectangle(blueBrush,e.ClipRectangle.X,e.ClipRectangle.y,e.ClipRectangle.Width,e.ClipRectangle.height)
        End If

        '画关闭符号
        Using p As Pen = New Pen(Color.Black, 1)
            '画"\"线
            Dim p1 As Point = New Point(e.ClipRectangle.X + 5, e.ClipRectangle.Y + 5)
            Dim p2 As Point = New Point(e.ClipRectangle.X + e.ClipRectangle.Width - 5, e.ClipRectangle.Y + e.ClipRectangle.Height - 5)
            g.DrawLine(p, p1, p2)

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/10/14 6:23:00 [只看该作者]

老师,
   1、楼上代码是做什么的呢,没看到效果,烦老师明示。
2、 如何使11楼按钮统一,都是圆或 都是方的,

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/10/14 7:21:00 [只看该作者]

老师,
  问题3
如何在窗口中设定关闭按钮的背景颜色,以便保持动态和PANL的颜色一致,怎么写?
如下图


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



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


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

_MainPagesTabBackColorSelected = Color.red

想要什么背景色,直接改这个变量就可以了




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

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/10/14 14:15:00 [只看该作者]

老师,
16楼 所提是 在窗口下的更改,不是在全局变量中更改;例如,如何在 pnal 的 Click 事件中写代码 点击后 添加的按钮的背景颜色与Panl 的一致?是这个意思

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


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

在创建panel的时候就设置为和panel一致就行了,为什么一定要到全局中修改。改全局代码还得重启项目,不嫌麻烦么

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/10/14 15:42:00 [只看该作者]

对 就是这个意思 
_MainPagesTabBackColorSelected = Color.red 在全局里设置 
对应在窗口用什么命令?

_SysCloseBut.BackColor= Color.Red ? 不行 应该是什么呢

 回到顶部
总数 66 上一页 1 2 3 4 5 6 7 下一页