DataGridView限制文本输入

 

#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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值