Visual Basic Как увеличить или уменьшить переменную с помощью компонента 3 NumericUpDown (или другого метода)? - PullRequest
0 голосов
/ 28 октября 2018

Итак, это то, что у меня есть в форме:

form

Пример ввода пользователя: (Например, NumericUpDown1 = 3,NumericUpDown2 = 1, NumericUpDown3 = 3)

Пример вывода на компьютер: (Осталось точек = 2, Причина: 9- (3 + 1 + 3) = 2)

То, что я хочу сделать с этими компонентами, это каждый раз, когда нажимается «вверх» на NumericUpDown Я хочу, чтобы переменная точек уменьшалась на 1 (Vise-Versa, когда нажимается вниз).Основная проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как проверить, нажата ли NumericUpDown вверх или вниз.

Если вы, ребята, знаете другой и лучший способ сделать это плохо, 100% пытайтесьпотому что этот путь выглядит ужасно.

Ответы [ 2 ]

0 голосов
/ 28 октября 2018

Как и у других элементов управления, NumericUpDown имеет события, которые могут содержать ваш код.Событие ValueChanged должно работать до тех пор, пока пользователь использует стрелки вверх, так как событие возникает, когда пользователь нажимает эти стрелки.Тем не менее, пользователь может ввести сумму, и событие не будет запущено, пока пользователь не щелкнет где-то еще в форме.Поэтому вы можете захотеть переместить код на кнопку «Точки обновления» вместо события ValueChanged.

Private Sub NumericUpDowns_ValueChanged(sender As Object, e As EventArgs) Handles NumericUpDown1.ValueChanged, NumericUpDown2.ValueChanged, NumericUpDown3.ValueChanged
        Dim pointsAvailable = CInt(lblPoints.Text)
        Dim pointsUsed = NumericUpDown1.Value + NumericUpDown2.Value + NumericUpDown3.Value
        lblPoints.Text = (pointsAvailable - pointsUsed).ToString
End Sub
0 голосов
/ 28 октября 2018

Это должно дать вам все, что вам нужно, чтобы понять, как сделать то, что вы просите:

Private Sub NumericUpDowns_ValueChanged(sender As Object, e As EventArgs) Handles NumericUpDown1.ValueChanged, NumericUpDown2.ValueChanged, NumericUpDown3.ValueChanged
    Me.Label1.Text = (3 * NumericUpDown1.Value + 2 * 3 * NumericUpDown2.Value + 2 * 3 * NumericUpDown3.Value).ToString()
End Sub
...