Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - [решено] Помогите советом, пожалуйста... (VB Express 2010)

Ответить
Настройки темы
VBA - [решено] Помогите советом, пожалуйста... (VB Express 2010)

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Понял необходимость умения писать несложные расчетные программы.
Это первая.
Вопрос - хотелось бы получать результат вычисления сразу в обоих TextBox-ах (3 и 4) не дожидаясь перевода фокуса (или перемещения курсора в эти поля).
Например: в ТВ1 пишется некоторое значение, после этого пишется значение в ТВ2. В ТВ3 и 4 выводятся результаты.
В данном случае решается треугольник, и значения могут быть любыми. Так, если значения будут 20 и 100, то в ТВ1 вписывается соответственно 20, а в ТВ2 будет вписываться 100. Но, хотелось бы, чтобы значения ТВ3 и 4 менялись сразу же после занесения 1, потом 0 и опять 0.
Буду благодарен за пример "как надо" для дальнейшего изучения и применения (я же только учусь).
Пример программы ниже (Visual Basic Express 2010):

Public Class Form1
Dim X, Y, radians, result, angle As Double
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
End Sub

Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
X = Val(TextBox1.Text)
End Sub

Private Sub TextBox2_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox2.TextChanged
Y = Val(TextBox2.Text)
End Sub

Private Sub TextBox3_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox3.TextChanged
radians = Math.Atan(Y / X)
angle = radians * (180 / Math.PI)
result = 90 - angle
TextBox3.Text = Math.Round(result, 4)
End Sub

Private Sub TextBox4_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox4.TextChanged
TextBox4.Text = Math.Round(result * 2, 4)
End Sub
End Class

Отправлено: 00:54, 07-01-2016

 

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата Andrew_VK:
хотелось бы получать результат вычисления сразу в обоих TextBox-ах (3 и 4) не дожидаясь перевода фокуса (или перемещения курсора в эти поля). »
Это не лучший выбор. Лучше завести отдельную командную кнопку «Выполнить расчёт».

Того, что Вы выложили — недостаточно. Опишите всю задачу целиком. Покажите весь проект. Как организовано ограничение на ввод некорректных данных (например, вводятся не цифры, а буквы)?

Отправлено: 02:41, 07-01-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Я понял о чём автор говорит. Я опишу алгоритм, хоть сам это делал на С++

В обработчике OnKeyPress тексбокса1, вызываете функцию, пусть она будет называться Calculate(), в самой функции Calculate() делаете расчёты и вывод в ТВ 3 и 4, тогда по нажатию кнопки в ТВ 1 у вас вызовется Calculate() с последующим расчётом и заполнением ТВ 3 и 4.

Цитата Iska:
Как организовано ограничение на ввод некорректных данных (например, вводятся не цифры, а буквы »
Ну это просто свойство можно поставить NumberOnly = true

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:26, 07-01-2016 | #3


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо за ответ, я именно так и сделал и, о чудо - все работает так как хотел. Теперь понимаю, что вопрос был совершенно примитивным. Извините!

Насчет кнопки "Расчет" - не удобно, т.к. бывает нужно просто быстренько подбирать подходящие варианты сторон, для получения нужного угла, а лишняя операция не очень удобна.

Отправлено: 13:39, 07-01-2016 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - [решено] Помогите советом, пожалуйста... (VB Express 2010)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - Помогите пожалуйста по VB by_gangster Программирование и базы данных 0 16-08-2015 14:00
.NET - Поиск и замена в VB.NET 2010 ashead Программирование и базы данных 7 23-12-2011 13:55
Уважаемые форумчане. Помогите с советом. С советом о жизни. ilqar84 Хочу все знать 12 07-03-2010 20:43
Помогите пожалуйста советом (Скрины есть) Tristana Лечение систем от вредоносных программ 1 11-08-2009 17:25
Помогите пожалуйста советом, как вам такая конфигурация bilitok Выбор отдельных компонентов компьютера и конфигурации в целом 6 03-07-2009 17:53




 
Переход