簡體   English   中英

Vb.net附加文本框的行

[英]Vb.net appending lines of a textbox

        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歲才放棄:(

正如@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個小數位(不多/少)。

值得注意的是,不建議使用單或雙數據類型的貨幣-隨着數字的增加,精度會下降(這只是浮點算法工作的副作用)。 顯示信息/計算近似值可能會很好,但是不要將其用於任何嚴重的事情,尤其是當結果一起使用且錯誤可能加重時。

例如,嘗試執行以下操作:

Dim Total as Double
For i = 1 to 1000000
    Total = Total + 1 / 1000000
Next i

直觀地,在此循環結束時, Total應該恰好為1。 實際上,它會比i

對於貨幣,請使用“ Decimal數據類型並指定所需的正確度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM