Сделайте код в VB.net при вводе текста перед отображением текста

У меня есть этот код в VB6:

Private Sub t_Change(Index As Integer)
Iznos = 0
For i = 1 To 4
    Iznos = Iznos + t(i).Text
Next
If CDbl(Iznos) > Label13.Caption Then
    t(Index).Text = 0
    Iznos = 0
    t(Index).SelStart = 0
    t(Index).SelLength = 1
    For i = 1 To 4
        Iznos = Iznos + t(i).Text
    Next
End If
t(0).Text = Format(Label13.Caption - CDbl(Iznos), "#,##0.00")
End Sub

Этот код работает для моего textboxes (4 из них названы: t(0),t(1),t(2),t(3)). Я пытаюсь добиться того же с VB.net, но я не могу понять это. Это мой код в VB.Net:

 Public Function izracunaj(ByVal s As Object)
    Dim ukupniIznos As Decimal = Decimal.Parse(maticnavalutatbox.Text)
    Dim poslaniIznos As Decimal = Decimal.Parse(s.text)
    Dim iznos As Decimal
    Dim allTextboxesPayment() As TextBox = {gotovinaTbox, karticeTbox, ostaloTbox, ziralnoTbox}
    For Each kontrola As TextBox In allTextboxesPayment
        iznos = iznos + Decimal.Parse(kontrola.Text)
    Next
    If CDbl(iznos) > ukupniIznos Then
        s.Text = 0
        iznos = 0
        For Each kontrola As TextBox In allTextboxesPayment
            iznos = iznos + Decimal.Parse(kontrola.Text)
        Next
    End If
    gotovinaTbox.Text = Format(ukupniIznos - CDbl(iznos), "#,##0.00")
End Function

Но если я вызову свою функцию следующим образом:

Private Sub ziralnoTbox_TextChanged(sender As Object, e As TextChangedEventArgs) Handles ziralnoTbox.TextChanged
izracunaj(sender)
End Sub

Это не работает, потому что моя функция izracunaj уже имеет входное значение ziralnoTbox. Как я могу добиться той же функциональности с vb.net, что и в vb6

Я не использую VB.Net (здесь C# dev), но я думаю, что с помощью события keyDown/KeyPress вам удастся это сделать, вот вопрос, говорящий об этом в VB.Net

Zoma 06.03.2019 14:08

В .NET нет эквивалента коллекций элементов управления VB6.

HardCode 06.03.2019 19:48

Раньше я использовал .NET-эквивалент коллекции элементов управления для некоторых проверок входных данных. вот больше информации

Jimmy Smith 07.03.2019 15:10
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
85
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если я правильно смотрю на это, вы могли бы использовать событие TextChanged.

Private Sub TextBox1_TextChanged(sender As Object,
                                     e As EventArgs) Handles gotovinaTbox.TextChanged,
                                                            karticeTbox.TextChanged, 
                                                            ostaloTbox.TextChanged,
                                                            ziralnoTbox.TextChanged
    Dim ukupniIznos As Decimal = Decimal.Parse(maticnavalutatbox.Text)
    Dim poslaniIznos As Decimal = Decimal.Parse(s.text)
    Dim iznos As Decimal
    Dim allTextboxesPayment() As TextBox = {gotovinaTbox, karticeTbox, ostaloTbox, ziralnoTbox}
       'gotovinaTbox, quita esto?
    For Each kontrola As TextBox In allTextboxesPayment
        iznos = iznos + Decimal.Parse(kontrola.Text)
    Next
    If CDbl(iznos) > ukupniIznos Then
        s.Text = 0
        iznos = 0
        For Each kontrola As TextBox In allTextboxesPayment
            iznos = iznos + Decimal.Parse(kontrola.Text)
        Next
    End If
    gotovinaTbox.Text = Format(ukupniIznos - CDbl(iznos), "#,##0.00")
End Sub

Другие вопросы по теме