Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> аналог Inkey$, ввод символа без Enter 
V
    Опции темы
lvvas
Дата 2.4.2009, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 1.4.2009

Репутация: нет
Всего: нет



Проблема в следующем: нужно организовать ввод данных (символа) без нажатия Enter.

Когда-то в qBasic это можно было сделать примерно так: 
1  a=inkey$ : if a="" then 1
Т.е. строка была зациклена до нажатия любой клавиши, а после нажатия символьной клавиши её значение присваивалось переменной а.

Как это можно организовать в VisualBasic?
PM MAIL   Вверх
-Mikle-
Дата 2.4.2009, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 3
Всего: 59



Тебе откуда таким образом надо считывать? С консоли что-ли? 

Цитата(lvvas @  2.4.2009,  15:01 Найти цитируемый пост)
1  a=inkey$ : if a="" then 1

у меня теперь ностальгия началась... по старому доброму...  smile ... эх, было времечко...


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
lvvas
Дата 2.4.2009, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 1.4.2009

Репутация: нет
Всего: нет



Ну... Не важно. Можно и в консольное окно. Например я хочу, чтобы данные, вводимые с клавиатуры, например в TextBox воспринимались сразу посимвольно, без нажатия Enter.
В старом добром, как Вы говорите,  qBasice я это сделать могу:
1  a=inkey$ : if a="" then 1
B=b+a: Goto 1
разумеется, с каким-то условием (например после ввода определённого символа) выхода из зацикливания

 а в VB - не могу сделать ничего подобного.

Это сообщение отредактировал(а) lvvas - 2.4.2009, 16:08
PM MAIL   Вверх
-Mikle-
Дата 2.4.2009, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 3
Всего: 59



Ну просто потому что сообщения о нажатии кнопок в VB.NET приходят окнам приложения, а не куда-то там... В консоли решение одно, а в формах другое. Более того, решение не одно, а несколько... Самый простой вариант, это сделать обработчик события KeyPress формы (или TextBox).
Каждое нажатие, будет приводить к вызову вашего обработчика, в котором вы и будете получать посимвольную информацию о нажатии кнопок... 
Только вот мне за мою не малую практику, такое никогда не требовалось... Поясни, в чем смысл такого желания? Возможно это просто отголоски старого Доброго Басика? Просто еще не привык к новым правилам и подходам...


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
lvvas
Дата 6.4.2009, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 1.4.2009

Репутация: нет
Всего: нет



Хотелось бы, чтобы приложение не реагировало на нажатие определённых клавишь.
Например, как в стандартном калькуляторе, где в TextBox нельзя ввести никакие символы, кроме цифровых.
PM MAIL   Вверх
Pilger
Дата 6.4.2009, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 10.5.2008
Где: Германия

Репутация: нет
Всего: нет



Ну так и проведи TextChanged для этого текстбокса (двойной клик по текстбоксу). А туда потом пиши, что должно происходить, когда текст в текстбоксе изменится и проверяй введеный текст как хочешь и делай с ним что хочешь.


--------------------
Ein Leben nach der Schleife existiert, nur wenn die Schleife terminiert.
PM MAIL ICQ   Вверх
-Mikle-
Дата 6.4.2009, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 3
Всего: 59



Обрабатывай событие KeyDown
Код

    Private Sub TextBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
        If e.KeyValue < 48 OrElse e.KeyValue > 57 Then
            e.SuppressKeyPress = True
        End If
    End Sub

Будет позволять вводить символы от 0 до 9 (Chr(48), Chr(57))


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
lvvas
Дата 6.4.2009, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 1.4.2009

Репутация: нет
Всего: нет



Большое спасибо за помощь. 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0698 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.