Case 0
MyValues(0) = InputBox("Geef de wisselkoers (> 0 en < 500) voor de Euro tov Amerikaanse dollars (1 Eur = .... Amerikaanse Dollars")
Do Until MyValues(0) >= 0 And MyValues(0) <= 500
MsgBox("De parameters vallen buiten de wisselkoers. Lees de text nog maals in het volgende scherm")
MyValues(0) = InputBox("Geef de wisselkoers (> 0 en < 500) voor de Euro tov Amerikaanse dollars (1 Eur = .... Amerikaanse Dollars")
Loop
Wisselkoersenlistbox.Text = String.Join(Environment.NewLine, MyValues)
Case 2
MyValues(1) = InputBox("Geef de wisselkoers (> 0 en < 500) voor de Euro tov Britse Ponden (1 Eur = .... Britse Ponden")
Do Until MyValues(1) >= 0 And MyValues(1) <= 500
MsgBox("De parameters vallen buiten de wisselkoers. Lees de text nog maals in het volgende scherm")
MyValues(1) = InputBox("Geef de wisselkoers (> 0 en < 500) voor de Euro tov Amerikaanse dollars (1 Eur = .... Amerikaanse Dollars")
Loop
Wisselkoersenlistbox.Text = String.Join(Environment.NewLine, MyValues)
现在有效: - )非常感谢!!!!! 我点击了一个加号但是在我达到15之前不能放弃:(
答案 0 :(得分:1)
正如@the_lotus在评论中提到的那样,您正试图在文本框中存储日期并在那里进行操作。这提出了很多问题。将信息存储在数组中更容易,根据需要更新它,然后在信息更改时重建文本框内容......
' Declare a variable to hold your messages. I've gone with 5 here but it can be any reasonable number (or you can use ReDim to change size later if you don't know from the start)
Dim MyMessages(5) As String {"Default Values go here (if any)", "Line2", "Line3", String.Empty, String.Empty}
' Update them as required in your existing Select Case statement
Case 0
' ... Other code ...
' Update message at index 0 (Line #1) to be whatever they input
MyMessages(0) = InputBox("Geef de wisselkoers (> 0 en < 500) voor de Euro tov Amerikaanse dollars (1 Eur = .... Amerikaanse Dollars")
Case 1
' ... Other code ...
' Update message at index 1 (Line #2) to be "Something"...
MyMessages(1) = "Something"
' ...etc...
' Finally, update the textbox so all messages are shown one-per-line
MessageBox1.Text = String.Join(Environment.NewLine, MyMessages)
你正在尝试的正确语法就是这个......
Wisselkoersenlistbox.Text = String.Join(" amerikaanse Dollar" & Environment.NewLine & "1 Euro = ", MyValues)
不幸的是,这不是很有帮助,因为它只将字符串放在值之间,而不是在第一个之前或最后一个之后。
更有用的是简单地格式化变量,因为它们被添加到数组中......
Dim format = "1 Euro = {0:0.00} amerikaanse Dollar"
Dim input = Double.Parse(InputBox("..."))
MyMessages(x) = String.Format(format, input)
我们提供的格式字符串显示了放置数字的位置,并且它应该始终显示2个小数位(不多于/少于)。
值得注意的是,不建议使用使用单数据或双数据类型的货币 - 随着数字变大,准确度会降低(只是how floating point arithmetic works的副作用)。显示信息/计算近似值可能没什么问题,但是你应该不将它用于任何严重的事情,特别是当结果一起使用并且错误可以复合时。
举个例子,尝试做类似的事情:
Dim Total as Double
For i = 1 to 1000000
Total = Total + 1 / 1000000
Next i
直观地说,Total
在此循环结束时应该恰好为1。事实上,它会略高于或低于i
。
对于货币,请使用Decimal
数据类型并指定所需的适当精确度。