[英]VB windows form calculate the digit in a multiline textbox
我要計算每行:就像第一行123 * 1.616和第二行213 * 1.616,並顯示每個總計。 公斤文本框中輸入的每個數字將多為1.616,然后在kati標簽中顯示結果。 這是我的代碼:
Private Sub b1_Click(sender As Object, e As EventArgs) Handles b1.Enter
For Each digit In (TextBox1.Text)
total1 = Val(digit) * 1.616
Label9.Text = total1
Next
Label9.Text = total1
End sub
請幫助我找到一些解決方案或解釋以實現輸出。
這應該工作
Private FACTOR As Decimal = 1.616
Private SEPARATOR As String = Environment.NewLine
Private Sub b1_Click(sender As Object, e As EventArgs) Handles b1.Click
Label9.Text = TextBox1.Text.
Split({SEPARATOR}, StringSplitOptions.RemoveEmptyEntries).
Select(Function(s1) $"{Decimal.Parse(s1) * FACTOR:0.00#}").
Aggregate(Function(s1, s2) $"{s1}{SEPARATOR}{s2}")
End Sub
這是LINQ中的功能
Split
使用SEPARATOR作為分隔符,在TextBox中的每一行中組成一個數組 Select
將元素轉換為其值乘以FACTOR Aggregate
將元素放回到由SEPERATOR分隔的字符串中 您的原始代碼為什么不起作用?
Option Strict On
可以避免這種情況)。 Label9.Text = Val(digit) * 1.616
(簡化) Label9.Text = Val(digit) * 1.616
,每次都會覆蓋Label。 您可以通過vbCrLf使用分割字符串
Sub main()
Dim multilinetext As String =
"10
20
30
40
50
60"
Dim number_array = multilinetext.Split(vbCrLf)
Dim output As Integer = 0
For Each i In number_array
output += i
Next
Stop
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.