专栏首页c#Winform自定义控件系列(三十七)c#Winform自定义控件-有标题的面板

(三十七)c#Winform自定义控件-有标题的面板

前提

入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章。

GitHub:https://github.com/kwwwvagaa/NetWinformControl

码云:https://gitee.com/kwwwvagaa/net_winform_custom_control.git

目录

https://www.cnblogs.com/bfyx/p/11364884.html

准备工作

用到了控件基类 UCControlBase,如果你还不了解UCControlBase,请移步 (一)c#Winform自定义控件-基类控件 查看

开始

添加一个用户控件,命名UCPanelTitle,继承自UCControlBase

2个属性  

 1 [Description("边框颜色"), Category("自定义")]
 2         public Color BorderColor
 3         {
 4             get { return this.RectColor; }
 5             set
 6             {
 7                 this.RectColor = value;
 8                 this.lblTitle.BackColor = value;
 9             }
10         }
11 
12         [Description("面板标题"), Category("自定义")]
13         public string Title
14         {
15             get { return lblTitle.Text; }
16             set { lblTitle.Text = value; }
17         }

全部代码

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Drawing;
 5 using System.Data;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Windows.Forms;
 9 
10 namespace HZH_Controls.Controls
11 {
12     public partial class UCPanelTitle : UCControlBase
13     {
14         [Description("边框颜色"), Category("自定义")]
15         public Color BorderColor
16         {
17             get { return this.RectColor; }
18             set
19             {
20                 this.RectColor = value;
21                 this.lblTitle.BackColor = value;
22             }
23         }
24 
25         [Description("面板标题"), Category("自定义")]
26         public string Title
27         {
28             get { return lblTitle.Text; }
29             set { lblTitle.Text = value; }
30         }
31         public UCPanelTitle()
32         {
33             InitializeComponent();
34         }
35     }
36 }
 1 namespace HZH_Controls.Controls
 2 {
 3     partial class UCPanelTitle
 4     {
 5         /// <summary> 
 6         /// 必需的设计器变量。
 7         /// </summary>
 8         private System.ComponentModel.IContainer components = null;
 9 
10         /// <summary> 
11         /// 清理所有正在使用的资源。
12         /// </summary>
13         /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
14         protected override void Dispose(bool disposing)
15         {
16             if (disposing && (components != null))
17             {
18                 components.Dispose();
19             }
20             base.Dispose(disposing);
21         }
22 
23         #region 组件设计器生成的代码
24 
25         /// <summary> 
26         /// 设计器支持所需的方法 - 不要
27         /// 使用代码编辑器修改此方法的内容。
28         /// </summary>
29         private void InitializeComponent()
30         {
31             this.lblTitle = new System.Windows.Forms.Label();
32             this.SuspendLayout();
33             // 
34             // lblTitle
35             // 
36             this.lblTitle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(22)))), ((int)(((byte)(160)))), ((int)(((byte)(133)))));
37             this.lblTitle.Dock = System.Windows.Forms.DockStyle.Top;
38             this.lblTitle.ForeColor = System.Drawing.Color.White;
39             this.lblTitle.Location = new System.Drawing.Point(0, 0);
40             this.lblTitle.Name = "lblTitle";
41             this.lblTitle.Size = new System.Drawing.Size(432, 34);
42             this.lblTitle.TabIndex = 0;
43             this.lblTitle.Text = "面板";
44             this.lblTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
45             // 
46             // UCPanelTitle
47             // 
48             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
49             this.BackColor = System.Drawing.Color.Transparent;
50             this.ConerRadius = 10;
51             this.Controls.Add(this.lblTitle);
52             this.FillColor = System.Drawing.Color.White;
53             this.IsRadius = true;
54             this.IsShowRect = true;
55             this.Name = "UCPanelTitle";
56             this.RectColor = System.Drawing.Color.FromArgb(((int)(((byte)(22)))), ((int)(((byte)(160)))), ((int)(((byte)(133)))));
57             this.Size = new System.Drawing.Size(432, 301);
58             this.ResumeLayout(false);
59 
60         }
61 
62         #endregion
63 
64         private System.Windows.Forms.Label lblTitle;
65     }
66 }

用处及效果

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • (二十四)c#Winform自定义控件-单标题窗体

    GitHub:https://github.com/kwwwvagaa/NetWinformControl

    冰封一夏
  • (十一)c#Winform自定义控件-列表

    GitHub:https://github.com/kwwwvagaa/NetWinformControl

    冰封一夏
  • (四十七)c#Winform自定义控件-树表格(treeGrid)

    GitHub:https://github.com/kwwwvagaa/NetWinformControl

    冰封一夏
  • Canvas 进阶(三)ts + canvas 重写”辨色“小游戏

    之前写过一篇文章 ES6 手写一个“辨色”小游戏, 感觉好玩挺不错。岂料评论区大神频出,其中有人指出,打开控制台,输入以下代码:

    小皮咖
  • Vue Router 实现多种页面跳转

    用法跟this.$router.push一样,但是跳转有区别。 前者跳转之后会向history栈添加一个记录,点击后退会返回到上一个页面。 后者跳转不会向h...

    任我行RQ
  • Laravel+Vue 构建支持邮件通知的二级评论系统

    这篇文章严格来讲是将已有的仿简书二级评论系统和 Laravel、Vue 进行结合并改进,例如添加邮件通知,评论定位。前人栽树后人乘凉,评论系统的数据结构和 Vu...

    蓝默空间
  • Tencent Xcheck代码安全检测:ThinkAdmin远程代码执行漏洞预警

    Xcheck是腾讯自研的静态应用安全测试(SAST,Static application security testing)工具。现已支持Python、Node...

    Deen_
  • Oracle中的PGA监控报警分析二(r12笔记第87天)

    今天又收到了一条报警的信息,看起来很常规,但是后面的故事如果你做了分析就会发现其实本身并不平常,我觉得我得出手了。之前的分析可以参考 Oracle中的PGA监控...

    jeanron100
  • 高可用服务架构设计(12) - 基于request cache请求缓存技术优化批量商品数据查询接口

    3、查找是否开启了request cache,是否有请求缓存,如果有缓存,直接取用缓存,返回结果

    JavaEdge
  • 我的开发日记(五)

    今天主要学习使用了比较常用的功能:1:更新数据时从其他表读取数据(这里有个问题,有个更好的办法是inner join,但是我这个更新涉及到了修改关联项apiId...

    FunTester

扫码关注云+社区

领取腾讯云代金券