#Region " 限制文本输入"
Private EditingControl As DataGridViewTextBoxEditingControl
Private Sub Dgv1_EditingControlShowing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles Dgv1.EditingControlShowing
EditingControl = CType(e.Control, DataGridViewTextBoxEditingControl)
AddHandler EditingControl.KeyPress, AddressOf EditIngcontrol_Keypress
End Sub
Private Sub EditIngcontrol_Keypress(ByVal sender As System.Object, ByVal e As KeyPressEventArgs)
'写上处理语句(限制字符录入)
e.KeyChar = TestText(e.KeyChar, "0123456789", True)
End Sub
#Region " 限制字符输入(过程)"
''' <summary>
''' 限制字符在文本框中输入的函数。
''' </summary>
''' <param name="KeyIn">请使用e.KeyChar(在VB2005中)</param>
''' <param name="ListString">要限制的字符串(可以输入的字符串)如"0123456789/-"</param>
''' <param name="EditBasp">是否可以使用Backspace(退格键),True为可以,Flase为不可以。</param>
''' <returns></returns>
''' <remarks></remarks>
Function TestText(ByVal KeyIn As String, ByVal ListString As String, ByVal EditBasp As Boolean) As String
'TextBox限制字符输入
Dim TestDATList As String '定义限制字符表变量
Dim KeyOut As String '返回值变量
If EditBasp = True Then '测试是否有效
TestDATList = UCase(ListString) & Chr(8) '得到含字符的大写表(其中8为退格键)
Else
TestDATList = UCase(ListString) '得到无字符的大写表
End If
If InStr(1, TestDATList, UCase(KeyIn), CompareMethod.Text) > 0 Then '键值是否在表中
KeyOut = KeyIn '是则附键值
Else
KeyOut = "" '否则键值无效
Beep() '响声警告
End If
TestText = KeyOut '返回结果
End Function
'
'方法:在需要限制输入的控件的 KeyPress 加入以下代码:
' e.KeyChar = TestText(e.KeyChar, "0123456789/-", True)
'
'这时TEXTBOX只接受字符:"0123456789/-"
'第三个参数决定能(True)否(False)使用 [Backspace] 键。
#End Region
#End Region