RSS
当前位置 : 主页>电脑文章>网络技术>

vb.net创建自定义控件

来源:互联网 作者:佚名 时间:01-16 11:25:54 浏览:
 = Tru 
  • Else  
  • e.Handled = False 
  • End If  
  • End Sub 
  • 注意 单纯依靠捕捉击键事件是无法确保输入 TextBox 的文本全是数字的,因为用户有时不是直接向 TextBox 中敲入字符,而是通过剪贴板粘贴字符给 TextBox ;何况 TextBox 文本的初值就有可能包含非法的字符。某些其它事件比如 TextChanged 等,或许能够捕捉到更多非法输入,但我更喜欢用 Validating 或者 Leave 事件,它们是在用户离开输入控件之后才对 TextBox 进行字符合法性检查。这么做诚然放弃了对用户输入的即时反应,却允许用户首先通过剪贴板输入“轻度犯规”的文本字符串 ,比如在禁止空格的输入框中粘贴 “3425 2343 2342 2342”,然后手工纠正输入框里的“犯规”字符。

    向控件中手工添加事件处理程序代码并不太难,可是当你面临更复杂的编程任务,比如检验邮寄地址或者汽车的 VIN # (车辆识别号码) 的字符合法性时,你还会感到如此轻松吗?此时你会希望把同一段事件处理程序用于多个窗体甚至多个项目,或者将它提供给开发小组的其他成员共享。然而,提取窗体中的代码片段,连同安装指南和控件的命名规则一起发布,却是一个恶梦的开端。好在天无绝人之路,你只要把它连同一个自定义控件发布,就不会遭遇这种恶梦了,因为此时用户界面和相关代码都位于独立的组件中,而组件的发布相对要容易得多。通过组件发布的代码片段在升级上也方便些:你只需发布新版的组件即可,再也不必通过种种渠道公布新的代码片段让程序员手工覆盖原先的代码了!

    继承性如何改变了控件的开发?

    在VB.NET开发控件已经和 VB6.0大相径庭。其根本原因,就是 .NET 引入了继承性。在 VB6.0中,你只能不用控件或者直接引用现成的控件来实现各种功能性。例如:为了创建前面提到的自定义文本输入框,你就要新建一个 ActiveX 控件,然后向其中增加一个 TextBox 。

    注意 人们通常把这种编程思路称为“容器” (containment) 或者“委托” (delegation)。在 VB6.0中,用于模拟继承机制的非控件类也可以采用这种思路。


    上一页 1 23 4 5 下一页