可以限制中文输入的文本框

发表于:2007-06-30来源:作者:点击数: 标签:
根据网友提的意见,大家都需要限制中文输入,今天,我试验了一下,找了一个办法限制中文输入, 测试 已经通过,大家也自己试一下吧,有什么意见继续提,如果愿意加我的QQ:36745349 这个是在昨天的基础上做的更改,测试已经满足大家的要求,如果谁有更好的办
根据网友提的意见,大家都需要限制中文输入,今天,我试验了一下,找了一个办法限制中文输入,测试已经通过,大家也自己试一下吧,有什么意见继续提,如果愿意加我的QQ:36745349



这个是在昨天的基础上做的更改,测试已经满足大家的要求,如果谁有更好的办法也请交流一下

下面是代码:

@#sunnyxing2004-04-01最后修改
Public Class MyTextBox
Inherits System.Windows.Forms.TextBox
Private m_strValidText As String = "0123456789.+-" & Chr(13).ToString
Private m_blnEditable As Boolean = True

#Region " Windows 窗体设计器生成的代码 "

Public Sub New()
MyBase.New()
@#该调用是 Windows 窗体设计器所必需的。
InitializeComponent()

@#在 InitializeComponent() 调用之后添加任何初始化

End Sub

@#UserControl1 重写 dispose 以清理组件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

@#Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer

@#注意: 以下过程是 Windows 窗体设计器所必需的
@#可以使用 Windows 窗体设计器修改此过程。
@#不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
components = New System.ComponentModel.Container
End Sub

#End Region

Private Sub MyTextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
Dim strLocalString As String
If EditAble Then
strLocalString = m_strValidText & Chr(8).ToString
Else
strLocalString = m_strValidText
End If
If UCase(strLocalString).IndexOf(UCase(e.KeyChar)) < 0 Then
e.Handled = True
Beep()
Else

End If
End Sub
Public Property ValidText() As String
Get
Return m_strValidText
End Get
Set(ByVal Value As String)
m_strValidText = Value
End Set
End Property
Public Property EditAble() As Boolean
Get
Return m_blnEditable
End Get
Set(ByVal Value As Boolean)
m_blnEditable = Value
End Set
End Property
Public Sub CheckText(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.TextChanged
Dim cha As Char
Try
cha = CType(Me.Text.Substring(Me.SelectionStart - 1, 1), Char)
If m_strValidText.IndexOf(cha) < 0 Then
Me.Text = Me.Text.Remove(Me.SelectionStart - 1, 1)

End If
Catch ex As Exception

End Try


End Sub

End Class


原文转自:http://www.ltesting.net