Snjana143 Ответов: 1

Изменение значения результата textbox value не будет отображаться корректно


Привет
Пожалуйста, помогите мне получить правильный ответ.
Я использую поле со списком, чтобы изменить значение для конкретной записи как GeneralWard, ICU, Room. Но значение textbox22 было изменено в один раз
во второй раз он не был изменен во второй раз.
Я использую
Со списком PatientID
TextBox1 как количество дней путем вычисления дней
TextBox22 как FinallBill
TextBox16 как GeneralWard
TextBox15 как Доктор плату
TextBox14 как сборы сестра

код выглядит следующим образом
следует
Заранее спасибо за предоставленное решение

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

Private Sub TextBox13_TextChanged(sender As Object, e As EventArgs) Handles TextBox13.TextChanged
        Dim calc As Integer
        Dim tot As Integer
        Try

            If TextBox13.Text = "General Ward" Then
                s = Val(Me.TextBox1.Text)
                Me.TextBox16.Text = gm
                Me.TextBox15.Text = dr
                Me.TextBox14.Text = nr

                calc = (Val(Me.TextBox14.Text) + Val(Me.TextBox15.Text) + Val(Me.TextBox16.Text) + Val(Me.TextBox17.Text))
                tot = calc * s
            ElseIf TextBox13.Text = "ICU" Then
                s = Val(Me.TextBox1.Text)
                Me.TextBox16.Text = icu
                Me.TextBox15.Text = dr
                Me.TextBox14.Text = nr

                calc = (Val(Me.TextBox14.Text) + Val(Me.TextBox15.Text) + Val(Me.TextBox16.Text) + Val(Me.TextBox17.Text))
                tot = calc * s
            ElseIf TextBox13.Text = "Room" Then
                s = Val(Me.TextBox1.Text)
                Me.TextBox16.Text = rm
                Me.TextBox15.Text = dr
                Me.TextBox14.Text = nr

                calc = (Val(Me.TextBox14.Text) + Val(Me.TextBox15.Text) + Val(Me.TextBox16.Text) + Val(Me.TextBox17.Text))
                tot = calc * s
            End If
            TextBox22.Text = tot

        Catch ex As Exception
            MsgBox("ERROR : " & ex.Message.ToString)
        End Try
    End Sub

1 Ответов

Рейтинг:
9

OriginalGriff

Код, который вы показываете, изменит текстовое поле 22 только в том случае, если изменится текстовое поле 13: Если этого не произойдет, обработчик событий не вызывается.
Поэтому начните с отладчика и убедитесь, что обработчик событий срабатывает именно тогда, когда вы этого ожидаете.

It's quite possible that this is all down to your use of default names for everything: it';s too easy to use the wrong text box somewhere and not notice. Do yourself a favour, and stop using Visual Studio default names for everything - you may remember that "TextBox8" is the mobile number today, but when you have to modify it in three weeks time, will you then? Use descriptive names - "tbMobileNo" for example - and your code becomes easier to read, more self documenting, easier to maintain - and surprisingly quicker to code because Intellisense can get to to "tbMobile" in three keystrokes, where "TextBox8" takes thinking about and 8 keystrokes...

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