【发布时间】:2019-03-06 12:56:12
【问题描述】:
我在 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# 开发),但我想在 keyDown/KeyPress 事件的帮助下,您可以设法做到这一点,这是一个 question 在 VB 中谈论这个。网
-
.NET 没有相当于 VB6 的控件集合。
-
我之前使用过 .NET 等效的控件集合来进行一些输入验证。 here's more info
标签: vb.net vb6 vb6-migration