• C#通过重写Panel改变边框颜色与宽度的方法


    在这里插入图片描述
    在C#中,Panel控件是一个容器控件,用于在窗体或用户控件中创建一个可用于容纳其他控件的面板。Panel提供了一种将相关控件组合在一起并进行布局的方式。以下是Panel控件的详细使用方法:

    在窗体上放置 Panel 控件:

    在 Visual Studio 的窗体设计器中,从工具箱中拖动并放置一个 Panel 控件到你的窗体上。

    添加其他控件:

    使用 Panel 控件作为容器来容纳其他控件。

    在 Panel 控件内部放置其他控件,如按钮、文本框、标签等。

    调整和布局其他控件,使其适合 Panel 控件的区域。

    设置 Panel 属性:

    使用 Panel.AutoScroll 属性设置是否显示滚动条,以便在 Panel 控件中容纳超出显示区域的控件。

    使用 Panel.BackColor 属性设置 Panel 控件的背景颜色。

    使用 Panel.BorderStyle 属性设置 Panel 控件的边框样式。
    在这里插入图片描述
    ​那么本文主要介绍了C#通过重写Panel改变边框颜色与宽度的方法,涉及C#针对Panel控件的重写与属性设置技巧,具有一 定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了C#通过重写Panel改变边框颜色与宽度的方法。分享给大家供大家参考。具体实现方法如下:

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Runtime.InteropServices;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Drawing;
    namespace ImageStudio
    {
    public class PanelEx : System.Windows.Forms.Panel
    {
    [DllImport("user32.dll")]
    private static extern IntPtr GetWindowDC(IntPtr hwnd);
    [DllImport("user32.dll")]
    private static extern int ReleaseDC(IntPtr hwnd, IntPtr hdc);
    private Color _borderColor = Color.Black;
    private int _borderWidth = 1;
    //
    // 摘要:
    // 获取或设置控件的边框颜色。
    //
    // 返回结果:
    // 控件的边框颜色 System.Drawing.Color。默认为 System.Drawing.Color.Black
    // 属性的值。
    [Description("组件的边框颜色。"), Category("Appearance")]
    public Color BorderColor
    {
    get
    {
    return _borderColor;
    }
    set
    {
    _borderColor = value;
    this.Invalidate();
    }
    }
    //
    // 摘要:
    // 获取或设置控件的边框宽度。
    //
    // 返回结果:
    // 控件的边框宽度 int。默认为 1
    // 属性的值。
    [Description("组件的边框宽度。"), Category("Appearance")]
    public int BorderWidth
    {
    get
    {
    return _borderWidth;
    }
    set
    {
    _borderWidth = value;
    this.Invalidate();
    }
    }
    public PanelEx()
    {
    SetStyle(ControlStyles.DoubleBuffer, true);
    SetStyle(ControlStyles.AllPaintingInWmPaint, false);
    SetStyle(ControlStyles.ResizeRedraw, true);
    SetStyle(ControlStyles.UserPaint, true);
    SetStyle(ControlStyles.SupportsTransparentBackColor, true);
    this.Paint+=new PaintEventHandler(PanelEx_Paint);
    }
    private void PanelEx_Paint(object sender, PaintEventArgs e)
    {
    if (this.BorderStyle == BorderStyle.FixedSingle)
    {
    IntPtr hDC = GetWindowDC(this.Handle);
    Graphics g = Graphics.FromHdc(hDC);
    ControlPaint.DrawBorder(
    g,
    new Rectangle(0, 0, this.Width, this.Height),
    _borderColor,
    _borderWidth,
    ButtonBorderStyle.Solid,
    _borderColor,
    _borderWidth,
    ButtonBorderStyle.Solid,
    _borderColor,
    _borderWidth,
    ButtonBorderStyle.Solid,
    _borderColor,
    _borderWidth,
    ButtonBorderStyle.Solid);
    g.Dispose();
    ReleaseDC(Handle, hDC);
    }
    }
    }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
  • 相关阅读:
    MySQL事务基本操作(方式1)
    python多分支选择结构实例讲解
    Java(四)(多态,final,常量,抽象类,接口)
    Android 应用程序通过MediaPipe 图片识别
    【FDTD 反射、透射、吸收 软件操作】
    数据结构(C语言)——单链表
    FastAPI 库(Python 的 Web 框架)基本使用指南(一)
    Java【数组】定义与使用,什么是引用类型你知道吗
    Git最新教程4——使用码云Gitee使用教程,创建项目仓库并上传代码
    CPP-Templates-2nd--第 22 章 桥接 static 和 dynamic 多态
  • 原文地址:https://blog.csdn.net/weixin_44301520/article/details/133007288