Нужна помощь с помощью флажка - PullRequest
0 голосов
/ 11 июля 2011

У меня есть пара вопросов о моем базовом проекте

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

Dim total As Double
If rb_s1.Checked = True Then
    total += 650.0

txt_1.Text = total

вот мой код.

и у меня есть много комбинированных окон, как я могу сделать их всесложите, как я проверяю / снимаю галочку с них.

Ответы [ 3 ]

1 голос
/ 11 июля 2011

Я бы добавил эту функцию в обработчик событий CheckBox_Changed. Таким образом, вы можете определить, является ли он unchecked или checked, и добавить или вычесть значение из цены.

Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, _
                  ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
    If CheckBox1.Checked Then
        total += 650.00
    Else
        total -= 650.00
    End If

    TextBox1.Text = total.ToString()
End Sub 
0 голосов
/ 11 июля 2011

Чтобы отображаемый текст изменялся при изменении состояния вашего флажка, вам нужно обработать событие CheckedChanged. В Visual Studio, находясь в режиме Desginer для вашей формы / элемента управления, вы можете установить флажок для элемента управления, а затем в окне «Свойства» выбрать вкладку «События» (ту, у которой есть маленький значок lightbolt) и дважды щелкнуть событие CheckChanged, чтобы заглушки. в методе обработчика события И прикрепите событие к обработчику.

ETA: Я перечитываю это, я не уверен, насколько ясно я был. Когда я упомянул заглушку в обработчике события и прикрепил событие к обработчику, я имел в виду, что переход по пути двойного щелчка по событию в конструкторе сделает это за вас.

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

Так что вы можете сделать что-то вроде этого:

Public Class Form1

    Private Sub DisplayTotal()
        Dim total As Decimal = 0

        If (CheckBox1.Checked) Then
            total += Decimal.Parse(txtItem1.Text)
        End If

        'Add other items

        txtTotal.Text = total

        End If
    End Sub

    Private Sub CheckBox1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox1.CheckedChanged
        DisplayTotal()
    End Sub

    Private Sub CheckBox2_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox1.CheckedChanged
        DisplayTotal()
    End Sub

End Class
0 голосов
/ 11 июля 2011

Вы должны использовать флажок Checked_Changed.

SHARED void CheckBox1_CheckedChanged(object sender, EventArgs e)
     IF ChkBx.Checked = true then
      textBox1.text = "1500"
     else
     textBox1.text = "" 
     END IF

END SUB
...