Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Нужна помошь!Вычиления при вводе данных.(VB6) Добавлено: 10.03.10 20:45  

Автор вопроса:  Gens
Привет всем))
VB6 только несколько дней стал изучать и сразу стопор(((
Пожалуйста помогите,может это просто но не могу разобраться.
Есть форма на которой расположено 4 Textbox'a , Label и Сommand.Программа выполняет простейшие математические действия по заданной формуле и выводит значение в Label (Textbox).
Вопрос такой: Как сделать так что бы вычисления производились не по нажатию Command ,а сразу при вводе числовых значений?

Ответить

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

Номер ответа: 1
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #1
Добавлено: 10.03.10 20:56
у текстбоксов есть событие Change. Пиши туда код, и он будет срабатывать при изменении текста.

Ответить

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



Вопросов: 5
Ответов: 3
 Профиль | | #2 Добавлено: 10.03.10 21:08
Спасибо,но у меня чего то не выходит.Если вставить в Change пишет ошибку.Может можно как то по другому,но я пришел к такому варианту т.к слишком много значений в формуле. Вот упрощёный код и даже с ним не работает без Command
  1.  
  2. Dim A, B, C
  3. A = Text1.Text
  4. B = Text2.Text
  5. C = A * B
  6. Text3.Text = C

Ответить

Номер ответа: 3
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #3
Добавлено: 10.03.10 21:47
Кин исходники в мыло: vbd@ilovevbd.com

Ответить

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



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #4
Добавлено: 10.03.10 21:52
  1. Dim A as double, B as double, C as double
  2. A = val(Text1.Text )
  3. B = val(Text2.Text )
  4. C = A * B
  5. Text3.Text = cstr(C)

Ответить

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



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #5 Добавлено: 11.03.10 02:23
Универсально :)

Ответить

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



Вопросов: 26
Ответов: 110
 Web-сайт: usprogs.atheo-club.ru
 Профиль | | #6
Добавлено: 11.03.10 20:23
Надо написать код в процедуре KeyPress(KeyAsci As Integer),а не в Change. Тогда у Вас получится вот что:
  1. Private Sub Text1_KeyPress(KeyAscii As Integer)'вместо Text1 напишите название элемента, 'куда Вам необходимо вывести результат
  2. Dim A, B, C
  3. A = Text1.Text
  4. B = Text2.Text
  5. C = A * B
  6. Text3.Text = C
  7. End Sub

Ответить

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



Вопросов: 5
Ответов: 3
 Профиль | | #7 Добавлено: 11.03.10 23:13
Спасибо за помощь,я решил отказаться от этого,решил оставить выполнение по нажатию Сommand. Оказалось эта функция не упрощает работу в программе.

Ответить

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



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #8 Добавлено: 13.03.10 22:37
Если обрабатывать только КейПресс, то остается возможость вставить лишнее из буфера.
Лучше наверное сабклассить.

Ответить

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



Вопросов: 4
Ответов: 14
 Профиль | | #9 Добавлено: 14.03.10 20:46
ошибка то была от того что складывался текст, а не числа (вероятнее всего - судя по коду), вам правильно подсказали что надо сначала переводить текст в число с помощью val(). из своего опыта помню что событие Change было более удобно чем KeyPress, с KeyPress какое то ограничение было не помню уже, с точки зрения пользователя тыкать а одну кнопку меньше гораздо удобнее (тем более придется вводить с клавы а потом хвататься за мышку)

Ответить

Страница: 1 |

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



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