[学习日记]对控件的继承和重载

今天在学习有关CLASS的继承后,有后领悟
就写了一个CLASS来继承textbox,嘿嘿,成功了!
当然还对其进行了重载,对输入的字符类型进行了限制,使其只能输入数字。
继承类如下:
Public Class NumericTextBox 
Inherits System.Windows.Forms.TextBox
Protected Overrides Sub OnKeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs) 
e.Handled 
= Not Char.IsDigit(e.KeyChar) 
End Sub
 
End Class
 

在窗外中调用此类代码如下:

#Region " Windows 窗体设计器生成的代码 "
'
 Friend WithEvents TextBox1 As NumericTextBox

<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.TextBox1 
= New NumericTextBox
 Me.SuspendLayout()
        
'
        'TextBox1
        '
        Me.TextBox1.Location = New System.Drawing.Point(2424)
        Me.TextBox1.Name 
= "TextBox1"
        Me.TextBox1.Size = New System.Drawing.Size(15221)
        Me.TextBox1.TabIndex 
= 0
        Me.TextBox1.Text 
= "123"
        '
'
.
   End Sub


#
End Region

其效果如图:
form1.JPG

嘿嘿!主要功能当然是都完成了,也成功了,可是遇到一个问题,因为限制只能输入数字,结果按小数点、减号和后退BCAK SPACE键都不起作用,就不能输入小数、负数和修改数值了,麻烦。
请高手帮忙修改一下,让其能输入现实意义的数字,并能修改。
posted @ 2005-03-11 10:39 轻风 阅读(1118) 评论(2)  编辑 收藏 网摘 所属分类: 学习日记

  回复  引用  查看    
#1楼2005-03-11 10:48 | dudu      
这样的文章建议放在新手区!
  回复  引用    
#2楼2005-03-23 02:28 | jjkk168[未注册用户]
可以通过更改WndProc或更改base.OnKeyPress事件来解决控件输入的检测,并且可以通过正则表达式来判断输入是否正确。

(注:如果是-号或.,则建议在判断正则表达式的时候在-或.后面加入0)






发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 116685




相关文章:

相关链接: