在Winform项目中,界面美观也是需要的,经常遇到界面元素不统一的情况,比如Button有大有小,比如都是保存,但每个页

面的快捷键还不一定相同,为在项目中统一元素,我将Button进行了封装,把常用的按钮统一到一个控件中:

1、首先定义一个Button类型枚举类

 1         public enum ButtonType
 2         {
 3             /// <summary>
 4             /// 保存
 5             /// </summary>
 6             Save = 0,
 7
 8             /// <summary>
 9             /// 退出
10             /// </summary>
11             Quit = 1,
12
13             /// <summary>
14             /// 确定
15             /// </summary>
16             Confirm = 2,
17
18             /// <summary>
19             /// 取消
20             /// </summary>
21             Cancle = 3,
22
23             /// <summary>
24             /// 新建
25             /// </summary>
26             New = 4,
27
28             /// <summary>
29             /// 编辑
30             /// </summary>
31             Edit = 5,
32
33             /// <summary>
34             /// 删除
35             /// </summary>
36             Delete = 6,
37
38             /// <summary>
39             /// 查询
40             /// </summary>
41             Query = 7,
42
43             /// <summary>
44             /// 应用
45             /// </summary>
46             Apply = 8,
47
48             /// <summary>
49             /// 添加
50             /// </summary>
51             Add = 9,
52
53             /// <summary>
54             /// 自定义
55             /// </summary>
56             Other = 99
57         }

View Code

2、建一个统一Button类,集成Button控件

 1 using System;
 2 using System.Collections;
 3 using System.Collections.Generic;
 4 using System.ComponentModel;
 5 using System.Linq;
 6 using System.Text;
 7 using System.Threading.Tasks;
 8 using System.Windows.Forms;
 9
10 namespace UcTool
11 {
12     public class UcButton : Button
13     {
14
15         public UcButton()
16         {
17             //初始化按钮类型枚举
18             InitButtonDictionary();
19             //初始化按钮样式
20             InitButtonStyle();
21         }
22
23         private void InitButtonStyle()
24         {
25             base.Size = new System.Drawing.Size(93, 30);
26         }
27
28         #region 按钮属性
29         private ButtonType _B_Type;
30         /// <summary>
31         /// 按钮类型
32         /// </summary>
33         [Description("按钮类型")]
34         public ButtonType B_Type
35         {
36             get
37             {
38                 return _B_Type;
39             }
40             set
41             {
42                 _B_Type = value;
43                 Text = ButtonDictionary[value];
44             }
45         }
46
47         [Description("按钮文本")]
48         public new string Text
49         {
50             get { return base.Text; }
51             set { base.Text = value; }
52         }
53
54         #endregion
55
56         #region 一次性载入按钮字典
57         private static Dictionary<ButtonType, string> ButtonDictionary;
58         private void InitButtonDictionary()
59         {
60             if (ButtonDictionary == null || ButtonDictionary.Count == 0)
61             {
62                 ButtonDictionary = new Dictionary<ButtonType, string>();
63                 ButtonDictionary.Add(ButtonType.Save, "保存(&S)");
64                 ButtonDictionary.Add(ButtonType.Quit, "退出(&U)");
65                 ButtonDictionary.Add(ButtonType.Confirm, "确定(&O)");
66                 ButtonDictionary.Add(ButtonType.Cancle, "取消(&C)");
67                 ButtonDictionary.Add(ButtonType.New, "新建(&N)");
68                 ButtonDictionary.Add(ButtonType.Edit, "编辑(&E)");
69                 ButtonDictionary.Add(ButtonType.Delete, "删除(&D)");
70                 ButtonDictionary.Add(ButtonType.Query, "查询(&Q)");
71                 ButtonDictionary.Add(ButtonType.Apply, "应用(&A)");
72                 ButtonDictionary.Add(ButtonType.Add, "添加(&M)");
73                 ButtonDictionary.Add(ButtonType.Other, "自定义");
74             }
75         }
76         #endregion
77     }
78 }

View Code

在使用的过程中遇到常用的按钮只需要修改该Button的【B_Type】属性即可,后期也可统一对按钮的样式进行调整;

转载于:https://www.cnblogs.com/Hua-Min/archive/2013/05/16/UC_Button.html

自定义Button按钮相关推荐

  1. Android 自定义Button按钮显示样式(正常、按下、获取焦点)

    2019独角兽企业重金招聘Python工程师标准>>> 现在的用户对APP的外观看得很重要,如果APP内所有元件都用Android默认样式写,估计下面评论里就有一堆在骂UI丑的.今天 ...

  2. 纯CSS自定义button按钮的点击特效

    纯css自定义button按钮的点击特效,实现背景变化 效果图如下: 代码如下: <!DOCTYPE html> <html> <head><meta cha ...

  3. android 自定义控件 焦点,Android 自定义Button按钮显示样式(正常、按下、获取焦点)...

    现在的用户对APP的外观看得很重要,如果APP内所有元件都用Android默认样式写,估计下面评论里就有一堆在骂UI丑的.今天学习自定义Button按钮样式.Button样式修改的是Button的背景 ...

  4. 5.Qt自定义Button按钮的实现

     1.编写自定义按钮 MyButton.h #ifndef MYBUTTON_H #define MYBUTTON_H #include <QWidget> /** * @brief ...

  5. wpf 自定义Button按钮

    创建ButtonEx类 public class ButtonEx : Button{static ButtonEx(){DefaultStyleKeyProperty.OverrideMetadat ...

  6. Button按钮自定义样式

    在进行UI设计时为了美观,可以自定义Button按钮的外观.比如自定义图片作为按钮的背景,直接将图片复制到项目的res/drawable/路径下,然后在xml文件中使用android:backgrou ...

  7. java 自定义形状按钮_制作自定义背景Button按钮、自定义形状Button的全攻略

    在Android开发应用中,默认的Button是由系统渲染和管理大小的.而我们看到的成功的移动应用,都是有着酷炫的外观和使用体验的.因此,我们在开发产品的时候,需要对默认按钮进行美化.在本篇里,笔者结 ...

  8. C#,桌面编程入门(01)——按钮Button属性与事件、动态创建、快捷键、控件数组及自定义Button

    本文是<桌面编程入门>系列文章的开山之篇. <桌面编程入门>系列文章主要介绍桌面编程的各种组件,Button,ComboBox,Panel,WebBrowser...... 类 ...

  9. iOS 自定义返回按钮,保留系统滑动返回

    1.简介 使用苹果手机,最喜欢的就是用它的滑动返回.作为一个开发者,我们在编写很多页面的时候,总是会因为这样那样的原因使得系统的滑动返回不可用.使用导航栏push出一个控制器,我们在控制器中自定义了一 ...

  10. 自定义Button防止重复提交

    由于网速问题,用户总是迫不及待的多次点击提交按钮,从而造成多次提交.以下通过自定义Button控件,来解决此问题. 原理:点击按钮后,通过设置其disabled属性为true来达到目的. 自定义But ...

最新文章

  1. 【产品干货】一个App的从无到有
  2. easyui-window 关闭事件,只要关闭窗口就会触发
  3. Hadoop webHDFS设置和使用说明
  4. hbuild 编译 php,Hbuilder的PHP环境搭建
  5. centos上部署java环境
  6. django模型_Django模型
  7. Leetcode 122.买卖股票的最佳时机II
  8. AES方式加解密的简单介绍
  9. 世上哪有那么多的怀才不遇
  10. keil交通灯c语言,用Keilc软件设计一个交通灯程序C程序
  11. 【网络安全】SQL注入详细分析
  12. QNX分布式实时操作系统初步认识-QNX系统了解认识
  13. 石家庄地铁站项目最终总结报告
  14. 2021全国大学生电子设计竞赛F题(智能送药小车)国一赛后总结
  15. 编写一个520表白网站并发布Web教程
  16. 红蜘蛛多媒体软件怎么停---超简单
  17. base64格式转换成普通png格式
  18. maven的pom文件引入依赖报错:提示无法处理 Cannot resolve...
  19. 猿创征文 | Python 开发工具进化之旅
  20. 谷歌要收购这家脑电波控制器公司

热门文章

  1. 图解Linux网络虚拟化相关的虚拟网卡-VETH/MACVLAN/MACVTAP/IPVLAN
  2. linux内核C -- 第08课:变参函数的格式检查——format
  3. 高通如何通过9008端口读取EMMC的分区
  4. STL---字符串使用方法
  5. 面向对象19:内部类
  6. hyper运算符_查询构造器
  7. db2 springboot 整合_Spring boot Mybatis 整合(完整版)
  8. jsp查询不到mysql内容_java查询到mysql数据库的数据,jspbean查询不到
  9. oracle 字段带数字,Oracle字符串中包含数字、特殊符号的排序
  10. oracle 访问adf 慢,ORACLE ADF 问题总结