个人开发历程知识库

关注C++/Java/C#技术, 致力于安防监控/移动应用/WEB方面开发
------------------------------------ 业精于勤,荒于嬉;行成于思,毁于随
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C# WinForm开发系列 - TextBox

Posted on 2009-06-07 22:17  peterzb  阅读(33666)  评论(5编辑  收藏  举报

   包含金额/日期输入框,带弹出数字面板的计算输入框,安全密码输入等控件(文章及相关代码搜集自网络,仅供参考学习,版权属于原作者! ).  

1.CalculatorBox    CalculatorBox.rar

2.带行号+自定义颜色显示的TextBox

3.金额输入框   currency_textbox.zip   CurrencyBox.rar   NumberPicker_src.zip   NumericTextBox_src.zip   NumberedTextbox.rar

4.日期输入框  DateEdit.rar

5.一个C#的数字字段的控件

6.扩展RichTextBox功能  RichTextBoxExtended.zip

7.C#的IP地址控件

8.Anders Cui
Windows Forms中通过自定义组件实现统一的数据验证(一)
Windows Forms中通过自定义组件实现统一的数据验证(二)
Win Form程序中的输入验证控件
拖放文件中的文本到 textbox 控件
C#挖掘Internet网络域名拓扑图

9.防止KeyLogger的密码输入对话框

10.Office 2007 Ribbon 风格的按钮和菜单[转载]

翻译

Juan Pablo G.C.著Improved and Recoded RibbonMenuButton

简介

首先,感谢大家。我非常感谢大家对本文的努力给与了高度的评价。我记得当我16岁的那年,我见到了各种各样的软件、应用程序和游戏,而对于我来说,当时根本不可能达到或开发这样的软件。然而,从此以后,我学习了许多,如今,我已经能够很轻易地完成这样的软件。而且,如果我能够帮助谁实现绚丽的应用程序,我决定他们可以自由地使用我的代码。

背景

此前,我一直在考虑如何做一个全定制的按钮,以及改变RGB元素究竟有多么难。我决定做一个能够提供很多操作颜色的类RibbonColor。如果你运行一下demo程序,并移动Hue,SatBrightnessTrackBar,就会很快明白我上面说的。我必须承认接近70%的RibbonControl链接库已经完成。然而,当人们迫切地希望使用改善过的代码,并告诉我我没有对我的代码作很多解释的时候,我决定把自己当作哑巴。:)

如何使用代码

首先,创建一个新的Windows应用程序。在解决方案浏览器中,选择Add Existing Item选项,然后选择RibbonMenuButton.cs文件,重新编译你的项目。这时,如果你点击form designer,在toolbox中,就会有一个新的子项RibbonMenuButton。把它拖到你的form上。从表面上看不出控件的特殊性,不过,请看属性浏览器。首先给RibbonMenuButton设定属性。

在你设置完属性,添加了一个图片,设置好文字,如果有的话,还可以设置字体为Segoe UI,然后,按钮就会变成下面的样子:

如果你已经编译了项目,并得到了上图的结果,接下来的事情就是改变控件的属性了。让我们看看每一个属性都代表着什么意思。推荐大家看看Demo工程中的按钮的属性:


Arrow:在右边或下面画一个箭头。只有当双double功能设置在another属性的时候,箭头才会画出来。
Colors:我想这个不需要解释了;推荐大家使用PlayGround程序选择你的颜色。
FadingSpeed:颜色间的淡出速度,0不淡出。
GroupPos:在左右上下设置圆角。
ImageLocation:设置图片位置,上下左右。
ImageOffset:图片相对边框的偏移。
MaxImageSize:限制图片大小,以使得按钮比图片大。
Radius:圆角的半径
ShowBase:如果你想显示BaseColor 和BaseStroke 颜色,设置成yes,此处Transparent 是一个显示淡出的颜色。
SplitButton:创建一个双double功能的按钮,箭头打开与之联系的ContextMenu 和其它组件。
SplitDistance:箭头按钮大小
Title:如果这个属性设置成非空字符串,控件会自动把Title加粗,把text显示在它的下面。
Text:如果你已经设置了一个Title,并希望多行显示文本,在其中加上"\n"。
KeepPress, IsPressed:如果在某些按钮上激活KeepPress,当其中一个按下的时候,控制器中的其它控件会失去ispress属性。

兴趣

如果你想更多地了解这个控件,推荐看一下这些:
this.Region:这是一个避免透明事件的好方法。
LinearGradient:当多颜色时,它使得渐变更容易。
MeasureString:它用于显示文本的位置,因为你必须去除base.OnPaint,而自己完成每一件事,包括显示文字。
TransformColors:包括Alpha opacity的方法
DrawArc:完成圆角部分
OnMouseUp:当SplitButton和IsPressed被激活的时候,完成某些功能。
RibbonColor:计算公式来自于Wikipedia 和Gimp。系统自带的System.Drawing.Color.GetHue, Sat 和Brightness不是特别好用。

关于原文作者 Juan Pablo G.C.

I'm an Electronic Engineer, I did my end degree project at Astrophysical Institute and Tech Institute. I'm HP Procurve AIS and ASE helping at University, and I'm getting ready for Microsoft MCTS.
I live in Canary Islands. At the moment Im developing a CRM software for my company. I'm really interested know people getting the MCTS.
I'm an SQL Server and .net2.0 intermediate expert.

Take a look to my blog Juan Pablo G.C.
Overrider:http://overrider.blogspot.com/

关于作者
发表文章:14
签名:
附件下载 (请点击原文链接下载)