Как ограничить значение текстового поля в vb 6.0

Занимаюсь обновлением оценок системы баз данных. Мне нужно ограничить каждое из моих текстовых полей значением менее 100, когда его больше 100 или когда это не номер, появится окно сообщения, и данные не будут сохранены, пока пользователь не изменит ошибку. Как я могу это сделать?


person WaiShyang    schedule 23.03.2013    source источник


Ответы (2)


Я согласен с Хиреном Пандьей, но подумал, что добавлю и свой собственный вариант.

Имейте в виду, что преобразование строки в числовое значение нетривиально, но Val, CInt, CDBl и т. д. Все функции в VB6 могут дать вам поведение, очень близкое к тому, что вы хотите. (некоторые из этих ссылок предназначены для VB.Net, но могут быть полезны). Вы хотите убедиться, что думаете о группировке цифр, положительном / отрицательном, десятичных разделителях и т. Д., Когда проверяете вводимые пользователем данные самостоятельно. В большинстве случаев встроенные функции достаточно хороши.

Private Sub Text1_Change()
    On Error GoTo Err_Handler
    Dim text As String
    text = Text1.text
    If IsNumeric(text) = True Then

        'If you only want integers...
        Dim value As Integer
        value = Val(text)
            If value <= 100 And value > 0 Then
            'The value is good so whatever stuff you need to do
            'And then leave the procedure
            Exit Sub
        End If
    End If

    'Let everything else fall through here...
Err_Handler:
    MsgBox "Invalid input."
    'Other stuff to prevent saving
End Sub
person Jason    schedule 23.03.2013

В свойствах текстового поля установите MaxLength равным 2.

Если вам нужно сообщение, в текстовом поле Изменить событие вы можете сделать ...

If Len(txtBox.Text)>2 then msgbox...

затем добавьте свое сообщение в окно сообщений.

Я мог бы уточнить детали, если вам это нужно. Что-то вроде ниже ...

Private Sub Text1_Change()
If Len(Text1) > 6 Then
    Text1 = " "    
    MsgBox "Not more than six"    
    Text1.SetFocus    
End If
End Sub
person Hiren Pandya    schedule 23.03.2013
comment
Могу я спросить, в чем польза SetFocus, не могли бы вы поподробнее? Спасибо :) - person WaiShyang; 23.03.2013
comment
SetFocus установит фокус (курсор) на текстовое поле. Означает, что после появления окна сообщения, когда пользователь вернется к форме, курсор будет в текстовом поле, к которому был применен SetFocus. - person Hiren Pandya; 25.03.2013