2016-02-25 5 views
1
Private Sub btnOne_Click(sender As Object, e As EventArgs) Handles btnOne.Click 
    txtAnswer.AppendText(1) 
End Sub 

Так что это мой код (это от 0 до 9 и точка для десятичных точек).Как сделать это более эффективным?

Я работаю над калькулятором для задания, мой вопрос в том, могу ли я сделать это более эффективным, чтобы у меня не было много кода, делающего то же самое?

Я решил настроить функцию для чтения содержимого кнопок и добавить их в текстовое поле, но затем кнопки управления и кнопки очистки просто добавят в текстовое поле вместо того, чтобы выполнять назначенный им код.

ответ

1

Вы можете создать один метод для цифровых кнопок и добавить их значение в объект тега. Тогда вы можете просто ссылаться на объекте тегов, добавляемый к тексту

Private Sub NumericButtons_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Dim btn As Button 
    btn = sender 
    txtAnswer.AppendText(btn.Tag) 
End Sub 
+0

Почему 'Tag', а не' Text'? – Andrew

+0

почему текст и не тег ... полдюжины или другой. Существует несколько способов сделать это. Я выбрал тег, как если бы у автора был текст One, Two ect ..., зная, что это лучший подход. – Sorceri

+0

Я думаю, что кнопка с номером 1 будет иметь «1» в свойстве «Текст», поэтому я думаю, что так лучше. В противном случае ему придется повторить текст в свойстве «Tag». Я никогда не видел калькулятор с указанными числами. : P – Andrew

0

Вы можете создать функцию так же, как это, но он должен прочитать номер от Text собственности отправителя, и назначить только цифровые кнопки для этой функции в событии OnClick.

Другие кнопки будут иметь свои собственные методы OnClick, и вы должны сделать общую функцию, как в этом случае, когда вы обнаружите общее поведение в некоторых из них. Возможно, вы могли бы сделать еще одну общую функцию для всех +-/x операторов, это подходит.

+0

Спасибо, я изначально думал, что это сработает, но я не мог заставить его работать, но я вижу свою ошибку с комментарием от Sorceri. Кроме того, спасибо за подсказку на операторах, я тоже это сделаю. Спасибо :) – ChrisMellor

+0

Если номер находится в тексте, вы можете использовать это свойство без проблем, на мой взгляд. – Andrew

+0

Что вы в конечном итоге используете, @ChrisMellor? – Andrew

Смежные вопросы