![]() |
Помогите советом, пожалуйста... (VB Express 2010)
Понял необходимость умения писать несложные расчетные программы.
Это первая. Вопрос - хотелось бы получать результат вычисления сразу в обоих 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 |
Цитата:
Того, что Вы выложили — недостаточно. Опишите всю задачу целиком. Покажите весь проект. Как организовано ограничение на ввод некорректных данных (например, вводятся не цифры, а буквы)? |
Я понял о чём автор говорит. Я опишу алгоритм, хоть сам это делал на С++
В обработчике OnKeyPress тексбокса1, вызываете функцию, пусть она будет называться Calculate(), в самой функции Calculate() делаете расчёты и вывод в ТВ 3 и 4, тогда по нажатию кнопки в ТВ 1 у вас вызовется Calculate() с последующим расчётом и заполнением ТВ 3 и 4. Цитата:
![]() |
Спасибо за ответ, я именно так и сделал и, о чудо - все работает так как хотел. Теперь понимаю, что вопрос был совершенно примитивным. Извините!
Насчет кнопки "Расчет" - не удобно, т.к. бывает нужно просто быстренько подбирать подходящие варианты сторон, для получения нужного угла, а лишняя операция не очень удобна. |
Время: 09:45. |
Время: 09:45.
© OSzone.net 2001-