Rikansha kumar Ответов: 1

Как объявить постоянные значения переключателей и флажков, чтобы показать общую стоимость в метке


Private Sub btnTotalCost_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTotalCost.Click

        lblTotalCost.Text = "YOU HAVE ORDERED:" & vbNewLine

        lblTotalCost.Text = lblTotalCost.Text & "ROOM TYPE" & vbNewLine & "--------" & vbNewLine

        If radLuxury.Checked Then
            lblTotalCost.Text = lblTotalCost.Text & "Luxury = $210" & vbNewLine
        ElseIf radSuperior.Checked Then
            lblTotalCost.Text = lblTotalCost.Text & "Superior = $150" & vbNewLine
        Else
            lblTotalCost.Text = lblTotalCost.Text & "Standard = $110" & vbNewLine
        End If

        lblTotalCost.Text = lblTotalCost.Text & vbNewLine & "MEAL OPTIONS" & vbNewLine & "--------" & vbNewLine

        If chkBufferBreakfast.Checked Then
            lblTotalCost.Text = lblTotalCost.Text & "Buffer Breakfast = $40" & vbNewLine
        End If
        If chkBufferDinner.Checked Then
            lblTotalCost.Text = lblTotalCost.Text & "Buffer Dinner = $60" & vbNewLine
        End If

        lblTotalCost.Text = lblTotalCost.Text & vbNewLine & "AMENITIES" & vbNewLine & "--------" & vbNewLine

        If chkInternet.Checked Then
            lblTotalCost.Text = lblTotalCost.Text & "Internet = $10" & vbNewLine
        End If
        If chkEntertainment.Checked Then
            lblTotalCost.Text = lblTotalCost.Text & "Entertainment = $20" & vbNewLine
        End If
        If chkSpaServices.Checked Then
            lblTotalCost.Text = lblTotalCost.Text & "Spa Services = $50" & vbNewLine
        End If



        
    End Sub


Что я уже пробовал:

я попробовал код выше . это прекрасно работает. но это только показывает разбивку затрат. я хочу, чтобы на этикетке также была указана общая стоимость. что еще я должен добавить в код??
пожалуйста помочь

Richard MacCutchan

Это ваша четвертая публикация этого же сообщения. Пожалуйста, размещайте сообщения только в одном месте и не злоупотребляйте сайтом.

1 Ответов

Рейтинг:
2

CHill60

Во - первых, вся эта конкатенация строк грязна- взгляните на Использование класса StringBuilder в .NET | Microsoft Docs[^] это будет гораздо проще следовать вашему коду, и вы будете назначать текстовое поле только один раз

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

Edit - что - то вроде этого (Примечание-это непроверено), и есть еще лучшие способы сделать это

Dim sb As StringBuilder = New StringBuilder("YOU HAVE ORDERED:" & vbNewLine)
Dim totCost As Double = 0.0

sb.Append "ROOM TYPE" & vbNewLine & "--------" & vbNewLine

If radLuxury.Checked Then
    sb.Append "Luxury = $210" & vbNewLine
    totCost += 210
ElseIf radSuperior.Checked Then
    sb.Append "Superior = $150" & vbNewLine
    totCost += 150
Else
    sb.Append "Standard = $110" & vbNewLine
    totCost += 110
End If

' all your other lines of the bill ...

sb.Append vbNewLine & "Total Cost: " & totCost.ToString()

lblTotalCost.Text = sb.ToString


Также взгляните на https://www.dotnetperls.com/format-vbnet[^]


Richard MacCutchan

Смотрите мой комментарий выше.

Rikansha kumar

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

CHill60

Хорошее место - Спасибо, что предупредили

CHill60

Вы не могли бы получить гораздо более простой, чем это, чтобы быть честным - это не сложно.
Не бойтесь того, чего вы раньше не видели.

totCost += 210
это то же самое, что
totCost = totCost + 210
и означает "добавьте 210 к тому, что у вас было раньше в переменной totCost". Мой способ - это просто обычный и более аккуратный способ сказать то же самое. Аналогично
sb.Append "Luxury = $210" & vbNewLine
по существу это то же самое, что
lblTotalCost.Text = lblTotalCost.Text & "Luxury = $210" & vbNewLine
только гораздо более эффективным способом.
Ключевым моментом здесь является то, что вам нужно сохранить текущую общую сумму затрат - я использовал переменную totCost чтобы сделать это - а затем добавить его в текст в самом конце вашей функции.
Вы можете сделать это многословным способом, или вы можете сделать это правильно, это зависит от вас. Мой совет-как можно скорее обзавестись хорошими привычками

Rikansha kumar

Большое вам спасибо за подробное объяснение. Мне удалось его закодировать!