您的位置:首页 > 其它

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

2014-05-08 19:41 351 查看
这个是在昨天的基础上做的更改,测试已经满足大家的要求,如果谁有更好的办法也请交流一下

下面是代码:

'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 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: