Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, в общем моя проблема заключается в следующем: я ограничиваю ввод в поле textbox'а в качестве разделителя у меня используется запятая, нужно запретить ввод в поле двух и более запятых, и по возможности запретить вставку в поле данных из буфера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2010, 20:20 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
Ловите событие Change Обрабатываете и перезаписываете свойство Text таким образом, чтобы там не было того, чего вам не нужно (двойных запятых, нецифровых символов и т.п.). Тогда и вставку из буфера не нужно будет запрещать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2010, 20:28 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, от повторяющихся запятых я пытаюсь избавиться следующим методом: сначала записываю в переменную длину поля textbox потом организую цикл с 0 по n (переменная за которую я обозначил длину textbox), вставляю условие типа if (textbox2.value=",") then p=p+1 (количество повторов запятых) потом считываю эту переменную , если p>=2 тогда сообщение об ошибке, проблема в том что я не пойму принцип обращения к элементам textbox'a с 0 по последний элемент, чтобы их сравнить ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2010, 20:37 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
dezmontino, используйте instr(): if instr(textbox1.text,",")>1 then msgbox или что-то еще end if ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2010, 20:50 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
dezmontinoобращения к элементам textbox'a с 0 по последний элемент если под "элементами текстбокса" вы подразумеваете символы в текстовой строке, то используйте команду Mid$. но, в принципе, организовывать цикл по символам не нужно, есть функция InStr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2010, 20:50 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
Еще можно вот так: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2010, 20:53 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
Shocker.Prodezmontinoобращения к элементам textbox'a с 0 по последний элемент если под "элементами текстбокса" вы подразумеваете символы в текстовой строке, то используйте команду Mid$. но, в принципе, организовывать цикл по символам не нужно, есть функция InStr да именно их я и подразумеваю, они начинают нумероваться с 0 или с 1? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2010, 20:53 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
dezmontino они начинают нумероваться с 0 или с 1? с 1 однако, взгляните на пример выше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2010, 20:54 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
вот вам еще вариант Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2010, 20:56 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
Поторопился Instr() возвращает позицию первого вхождения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2010, 20:58 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
i=instr(textbox1.text,",") if i<>0 then i=instr(i+1,textbox1.text,",") select case i case is>o msgbox "Больше одной запятой!" end select end if ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2010, 21:11 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
zchvv i=instr(textbox1.text,",") if i<>0 then i=instr(i+1,textbox1.text,",") select case i case is>o msgbox "Больше одной запятой!" end select end if спасибо работает после msg дописал Textbox2.value=" ", чтобы очищалась после нажатия Ok ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2010, 22:29 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
с помощью события keypress можно запретить вставку из буфера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2010, 22:30 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
dezmontinoс помощью события keypress можно запретить вставку из буфера? нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2010, 22:35 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
dezmontino, Вставка из буфера имеет смысл, когда более одного символа... Если значение TextBox изменилось более чем на один, то стираем свежее поступление :) А вообще наверно как-то подругому делается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2010, 05:11 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
AlexFrdezmontino, Вставка из буфера имеет смысл, когда более одного символа... Если значение TextBox изменилось более чем на один, то стираем свежее поступление :) А вообще наверно как-то подругому делается... я хочу запретить вставку из буфера, по скольку можно будет вставить 1 букву, текст, и вообще любой набор символов, а данное действие в дальнейшем приведёт к ошибке, по скольку с полями проводятся арифметические действия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2010, 11:31 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
dezmontinoя хочу запретить вставку из буфера, по скольку можно будет вставить 1 букву, текст, и вообще любой набор символов, а данное действие в дальнейшем приведёт к ошибке, по скольку с полями проводятся арифметические действия. Ну так и ограничивайте возможности ввода в поле. А то, что введено, проверяйте на корректность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2010, 11:39 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
Лично я поступаю принципиально иначе. Пользователь может плясать в поле как угодно, но при попытке выйти из поля (потеря фокуса мышью, клавиша Tab), а также при нажатии Enter, проверяется корректность введенных данных. В случае некорректных данных - выдается сообщение с предложением продолжить редактирование или вернуть предыдущие корректные данные. В первом случае ему покидать поле запрещено. Потому что, например, в 1С в качестве разделителя копеек используется вообще знак "=". Я не хочу запрещать пользователю скопировать число из 1С и вручную поправить разделитель. Естественно, весь функционал однократно упаковывается в юзерконтрол, делаются свойства для ограничений (верхний/нижний лимит и т.п.) и забывается навеки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2010, 11:51 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
Shocker.ProЛично я поступаю принципиально иначе. Пользователь может плясать в поле как угодно... Во-во: именно так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2010, 12:02 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
по скольку с полями проводятся арифметические действия dezmontino, похоже, вам надо проверять ввод более одной запятой в случае ввода, например, такой строки: "123,45,89" ? Тогда Вам поможет IsNumeric: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2010, 12:19 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
dezmontino, Всегда есть возможность проверить данные перед употреблением, если это предусмотрено автором. Событие отлавливается на лету, а остальное сказал Shocker.Pro и vlth. Я не знал зачем наложен запрет на буфер, поэтому предложил такое решение, как вариант. Вдруг запрет по причине обработки каждого символа сторонней процедурой в процессе ввода делается для получения текущих специфических эффектов, например, измерение скорости работы usera с клавой или обучение английскому с прменением механической памяти usera. А вообще можно сравнить поступившие данные с текущим содержанием буфера... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2010, 14:17 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
хорошо попробую ловить через событие onChange и проверять через x = IsNumeric(textbox2.text,",") возникает следующий вопрос, у меня дома работает функция поиск решений, но на другом компьютере даже при подключении solver.xlam из refences пишет, что неизвестная функция, в чём может быть проблема? и почему у меня такой проблемы не наблюдается? на обоих компьютерах excel 2007 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2010, 14:31 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, начал мудрить с событием onChange e = Val(TextBox2.Value) If (e = False) And (TextBox2.Value <> "") And (TextBox2.Value <> 0) Then MsgBox "некорректный ввод", vbExclamation, "Внимание" TextBox2.Value = "" TextBox2.SetFocus End If но вот незадача если я ввожу 0,"любое число" то вылезает сообщение MSg вопрос почему? числа от 1-9 относятся же к числовым значениям от одиночных запятых данная конструкция защищает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2010, 20:00 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
вы e зачем с False сравниваете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2010, 20:19 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36533208&tid=2160022]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 378ms |

| 0 / 0 |
