Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 |

 

  Вопрос: Проверка корректности ввода данных Добавлено: 02.05.05 21:56  

Автор вопроса:  Артём | ICQ: 6330018 
В Visual Basic 6 были такие функции как IsNumeric IsDate и IsNull. Какая у них альтернатива в NET? Спасибо!
И еще как проверить что в TextBox введен только текст без цифр...???

Ответить

  Ответы Всего ответов: 25  

Номер ответа: 1
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #1
Добавлено: 02.05.05 23:53
может проверить каждый символ строки на принадлежность его к множеству из цифр? это алгоритм, который будет работать на любом языке :-) хоть и небыстро

Ответить

Номер ответа: 2
Автор ответа:
 Артём



ICQ: 6330018 

Вопросов: 6
Ответов: 11
 Профиль | | #2 Добавлено: 03.05.05 00:04
Это не рационально, я уверен что есть специальные функции о которых и хочу узнать...

Ответить

Номер ответа: 3
Автор ответа:
 Fry1988



ICQ: 228-157-294 

Вопросов: 2
Ответов: 8
 Профиль | | #3 Добавлено: 03.05.05 00:11
Я не очень разбираюсь в net... Я точно не помню как пишется, но нет ли
такой функции:


system.microsoft.visualbasic6.isnumeric(...)

и так далее

Ответить

Номер ответа: 4
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #4 Добавлено: 03.05.05 11:43
Morpheus, как говорится, если нечего сказать, лучше жевать.

IsNumeric и IsDate можно использовать и без указания
system.microsoft.visualbasic6.

Но в .NET гораздо правильнее использовать следующие варианты:

Date.TryParse
Integer.TryParse

Что касается IsNull, то в .NET нет такого понятия как Null - есть Nothing.
Тогда рабочий такой вариант:

If MyVar Is Nothing Then

Если юзаешь VB 2005, то рабочий и этот вариант:

If MyVar IsNot Nothing Then

Ответить

Номер ответа: 5
Автор ответа:
 Артём



ICQ: 6330018 

Вопросов: 6
Ответов: 11
 Профиль | | #5 Добавлено: 04.05.05 01:10
Спасибо! Ещё хотелось бы узнать как можно реализовать такую проверку что в Текстовом поле был введен только текст без цифр....??? т.е. для цифр есть IsNumeric а для текста? Ведь если IsNumeric False - это не значит что там текст, там может быть и симбеоз текста и цифр....Заранее спасибо...

Ответить

Номер ответа: 6
Автор ответа:
 Артём



ICQ: 6330018 

Вопросов: 6
Ответов: 11
 Профиль | | #6 Добавлено: 04.05.05 01:10
Спасибо! Ещё хотелось бы узнать как можно реализовать такую проверку что в Текстовом поле был введен только текст без цифр....??? т.е. для цифр есть IsNumeric а для текста? Ведь если IsNumeric False - это не значит что там текст, там может быть и симбеоз текста и цифр....Заранее спасибо...

Ответить

Номер ответа: 7
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #7
Добавлено: 04.05.05 01:55
Незнаю точно, но возможно что так:

    Private Sub txtTextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTextBox1.KeyPress
        if IsNumeric(e.KeyChar) then _
            e.Handled = True
    End Sub

Ответить

Номер ответа: 8
Автор ответа:
 freeloader



ICQ: 50804884 

Вопросов: 72
Ответов: 642
 Web-сайт: freeloader.folder-pro.net
 Профиль | | #8
Добавлено: 04.05.05 12:51
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Select Case m.Msg
Case WM_CHAR
' Если не число или Backspace, то не надо нам этого вообще
If (m.WParam.ToInt32 > 57 Or m.WParam.ToInt32 < 48) And _
m.WParam.ToInt32 <> 8 Then Return
' Не пускаем Ctrl+C, Ctrl+V или Ctrl+X
If Me.ModifierKeys.Control And (m.WParam.ToInt32 = 3 Or _
m.WParam.ToInt32 = 22 Or m.WParam.ToInt32 = 24) Then Return
Case WM_RBUTTONDOWN ' Не надо нам никаких менюшек при правом клике
Return
End Select
MyBase.WndProc(m) ' Передаем события дальше
End Sub
Замени на то что тебе нужно,

статья "Subclassing в VB .NET"

Ответить

Номер ответа: 9
Автор ответа:
 Артём



ICQ: 6330018 

Вопросов: 6
Ответов: 11
 Профиль | | #9 Добавлено: 04.05.05 19:36
Не подскажите как заблокировать клавиши, вот думаю может просто заблокировать клавиши цифр от 0 до 9 и всё.....подскажите...

Ответить

Номер ответа: 10
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #10
Добавлено: 04.05.05 19:44
Вот так задать ввод только цифр:

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < Asc(0) Or KeyAscii > Asc(9) Then
    KeyAscii = 0
    Beep     ' &#231;&#226;&#243;&#234;&#238;&#226;&#238;&#233; &#241;&#232;&#227;&#237;&#224;&#235; &#239;&#240;&#232; &#238;&#248;&#232;&#225;&#234;&#229;
End If
End Sub


Этот код несложно переделать под "только не цифры"


Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not (KeyAscii < Asc(0) Or KeyAscii > Asc(9)) Then
    KeyAscii = 0
    Beep     ' &#231;&#226;&#243;&#234;&#238;&#226;&#238;&#233; &#241;&#232;&#227;&#237;&#224;&#235; &#239;&#240;&#232; &#238;&#248;&#232;&#225;&#234;&#229;
End If
End Sub

Ответить

Номер ответа: 11
Автор ответа:
 Артём



ICQ: 6330018 

Вопросов: 6
Ответов: 11
 Профиль | | #11 Добавлено: 04.05.05 22:30
2Morpheus
ФОрум про VB NET это в 6 KeyAscii было, но все равно спасибо....
Жду советов ещо...

Ответить

Номер ответа: 12
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #12 Добавлено: 04.05.05 22:38
Артём, ты хотя бы все предложенные тебе варианты пробовал?

Вариант, предложенный sne как раз подходит для тебя.
Советую также обрабатывать KeyDown и KeyUp. По крайней мере, у себя в проге
я так и делал.

Ответить

Номер ответа: 13
Автор ответа:
 Артём



ICQ: 6330018 

Вопросов: 6
Ответов: 11
 Профиль | | #13 Добавлено: 04.05.05 22:51
2sne & Artyom
Большое спасибо! Извините, согласен ступил, не заметил старого сообщения.....Последняя просьба, надеюсь, как заблокировать клавишу ENTER????

Ответить

Номер ответа: 14
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #14 Добавлено: 04.05.05 23:06
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        If e.KeyChar = ControlChars.Cr Then e.Handled = True
    End Sub

Ответить

Номер ответа: 15
Автор ответа:
 Артём



ICQ: 6330018 

Вопросов: 6
Ответов: 11
 Профиль | | #15 Добавлено: 04.05.05 23:32
Спасибо! А KeyDown и KeyUp обязательно обрабатывать или нет? Просто я курсовую сдаю как думаете лучше сделать, а то придерутся?

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам