.ACDSee
曾經一打開電腦桌面上就有只綠色的眼睛盯著你,它就是大名鼎鼎的ACDSee。小巧,占用資源少,可編輯圖片,成了當時裝機必備的看圖軟件。但隨著windows自帶的看圖軟件的成熟和國產軟件崛起,ACDSee也越來越臃腫,也慢慢從大眾視野里消失了。
5.vagaa哇嘎
哇嘎是一個類電驢類的下載軟件,但下載速度比電驢快很多,常用來搜索下載視頻、游戲一些盜版軟件,就是它能搜到各種東西,也讓它成了電腦病毒傳播溫床,而且能搜到那些不可描述的小視頻,讓它爭議性特大。后來迅雷的興起,徹底將它掃入了歷史的垃圾堆里。
6.網際快車
網際快車是一個挺可惜的下載軟件,當時的迅雷都還是它的小弟,作者沉迷于魔獸,讓他長時間停止了開發軟件,沒使用新技術,慢慢地讓迅雷后來居上,等作者反應過來時,為時已晚了,市場全讓迅雷搶占,從此網際快車一蹶不振。現在雖然官網還在,但軟件已經許久沒更新了,最近的一次更新還是2015年。
7.瑞星和一眾國產殺毒軟件
瑞星那個小獅子很可愛,當時的話也就是瑞星這個軟件也就小獅子可愛,毫無其他用處。在那個病毒猖獗的年代,任何一個U盤都是帶毒的,這些殺毒軟件包括瑞星,金山,江明換了一個又一個,依然無法將電腦里的病毒清除干凈。當時的周鴻祎正在做臭名昭著的3721,還沒來攪局,不過當周鴻祎將3721賣給雅虎后,創立360,殺軟的天開始變了,先是出了個3721專殺,將自己的親兒子干掉,打出了名聲,后免費領取半年的卡巴斯基,這個比一眾國產殺毒軟件強多了,就是殺毒的時候聲音太難聽,就像殺豬一樣。再后來360親自下場,推出免費殺軟,360借著免費迅速干趴下一眾收費的殺毒軟件。從此瑞星們成了新的流氓軟件。
入行已經7,8年了,一直想做一套漂亮點的自定義控件,于是就有了本系列文章。
本系列文章將講解各種控件的開發及思路,歡迎各位批評指正。
此系列控件開發教程將全部在原生控件基礎上進行重繪開發,目標的扁平化、漂亮、支持觸屏。
如果有什么好的建議也可以評論留言來交流。
源碼地址:
GitHub:https://github.com/kwwwvagaa/NetWinformControl
碼云:https://gitee.com/kwwwvagaa/net_winform_custom_control.git
如果覺得寫的還行,請點個 star 支持一下吧
歡迎前來交流探討: 企鵝群568015492
http://toutiao.com/item/6824291838963220999/
該控件將繼承基類控件UCControlBase,如果你還對UCControlBase不了解的下,
請移步 (一)c#Winform自定義控件-基類控件 查看
首先我們了解下要做的是什么,我們需要做一個可以自定義填充顏色,有圓角邊框,有角標的按鈕
添加一個用戶控件,命名為UCBtnExt ,繼承 UCControlBase
先來看看我們按鈕需要支持的屬性吧
1 #region 字段屬性
2 [Description("是否顯示角標"), Category("自定義")]
3 public bool IsShowTips
4 {
5 get
6 {
7 return this.lblTips.Visible;
8 }
9 set
10 {
11 this.lblTips.Visible = value;
12 }
13 }
14
15 [Description("角標文字"), Category("自定義")]
16 public string TipsText
17 {
18 get
19 {
20 return this.lblTips.Text;
21 }
22 set
23 {
24 this.lblTips.Text = value;
25 }
26 }
27
28 private Color _btnBackColor = Color.White;
29 [Description("按鈕背景色"), Category("自定義")]
30 public Color BtnBackColor
31 {
32 get { return _btnBackColor; }
33 set
34 {
35 _btnBackColor = value;
36 this.BackColor = value;
37 }
38 }
39
40 private Color _btnForeColor = Color.Black;
41 /// <summary>
42 /// 按鈕字體顏色
43 /// </summary>
44 [Description("按鈕字體顏色"), Category("自定義")]
45 public Color BtnForeColor
46 {
47 get { return _btnForeColor; }
48 set
49 {
50 _btnForeColor = value;
51 this.lbl.ForeColor = value;
52 }
53 }
54
55 private Font _btnFont = new System.Drawing.Font("微軟雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
56 /// <summary>
57 /// 按鈕字體
58 /// </summary>
59 [Description("按鈕字體"), Category("自定義")]
60 public Font BtnFont
61 {
62 get { return _btnFont; }
63 set
64 {
65 _btnFont = value;
66 this.lbl.Font = value;
67 }
68 }
69
70 /// <summary>
71 /// 按鈕點擊事件
72 /// </summary>
73 [Description("按鈕點擊事件"), Category("自定義")]
74 public event EventHandler BtnClick;
75
76 private string _btnText;
77 /// <summary>
78 /// 按鈕文字
79 /// </summary>
80 [Description("按鈕文字"), Category("自定義")]
81 public string BtnText
82 {
83 get { return _btnText; }
84 set
85 {
86 _btnText = value;
87 lbl.Text = value;
88 }
89 }
90 #endregion
有了屬性是不是就更明了呢
還有最后關鍵的一點東西,就是按鈕的點擊事件
1 private void lbl_MouseDown(object sender, MouseEventArgs e)
2 {
3 if (this.BtnClick != null)
4 BtnClick(this, e);
5 }
至此基本上就完工了
用處:按鈕有什么用,我想我不用解釋了吧
效果:
如果你喜歡的話,請到 碼云或Github 點個星星吧