簡體   English   中英

將多行文本框的行添加到字符串/數組 VB.NET

[英]Add lines of a multiline textbox into a string / array VB.NET

我應該將 txtstringnump1 替換為最多 20 個文本框,它會創建一個列表,可以在其中寫入值,直到還有一個文本框。 我該怎么做呢?

 Dim AllNumbers1 As New List(Of IEnumerable(Of ArrayList))
        Dim str As String
        'Set your string value
        For i As Integer = 0 To Globals.TBIntDrawsXCount - 1
            str = TxtBoxIntDrawsX.Lines(i)
            'Define  new string array containing elements of str divided by space..
            Dim strWords As String() = str.Split(",")
            Dim myArr As Integer() = strWords(0).ToString
     TxtStringNumP1.Text &= strWords(0) & Environment.NewLine
            TxtStringNumP2.Text &= strWords(1) & Environment.NewLine
            TxtStringNumP3.Text &= strWords(2) & Environment.NewLine
            TxtStringNumP4.Text &= strWords(3) & Environment.NewLine
            TxtStringNumP5.Text &= strWords(4) & Environment.NewLine
            TxtStringNumP6.Text &= strWords(5) & Environment.NewLine
            TxtStringNumP7.Text &= strWords(6) & Environment.NewLine
            TxtStringNumP8.Text &= strWords(7) & Environment.NewLine
            TxtStringNumP9.Text &= strWords(8) & Environment.NewLine
            TxtStringNumP10.Text &= strWords(9) & Environment.NewLine
            TxtStringNumP11.Text &= strWords(10) & Environment.NewLine
            TxtStringNumP12.Text &= strWords(11) & Environment.NewLine
            TxtStringNumP13.Text &= strWords(12) & Environment.NewLine
            TxtStringNumP14.Text &= strWords(13) & Environment.NewLine
            TxtStringNumP15.Text &= strWords(14) & Environment.NewLine
            TxtStringNumP16.Text &= strWords(15) & Environment.NewLine
            TxtStringNumP17.Text &= strWords(16) & Environment.NewLine
            TxtStringNumP18.Text &= strWords(17) & Environment.NewLine
            TxtStringNumP19.Text &= strWords(18) & Environment.NewLine
            TxtStringNumP20.Text &= strWords(19) & Environment.NewLine
        Next

TextBoxLines屬性是一個行數組。 當您閱讀TextBox class 的文檔時,您應該已經看到了這一點,您應該在此處發布之前完成這些操作。

此代碼將行添加到后續文本框。 當到達最后一個文本框時,它會從第一個文本框重新開始:

Dim tbIndex As Integer = 0

Dim lines As String() = TxtBoxIntDrawsX.Lines
For i As Integer = 0 To Globals.TBIntDrawsXCount - 1
    Dim str = lines(i)
    Dim strWords As String() = str.Split(","c)
    For Each word As String In strWords
        Dim tb = DirectCast(Controls.Item("TxtStringNumP" & (tbIndex + 1)), TextBox)
        tb.Text &= word & Environment.NewLine
        tbIndex = (tbIndex + 1) Mod 20
    Next
Next

我正在使用兩個技巧:

  1. 我在 Form 的Controls集合中按名稱查找文本框。
  2. 我使用模運算將索引限制在 0.. 19 范圍內

我不確定這是否是您需要的。 如果您需要其他內容,請提供更好的描述。


注意:根據@jmcilhinney 的建議更新。 lines 數組存儲在循環之前,以避免每次由 TextBox 創建一個新數組。

此代碼假定所需的行數可用。 如果 TextBox 不包含足夠的行,則行Dim str = lines(i)將生成索引越界異常。 通過適當的檢查,代碼會更加健壯。

暫無
暫無

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

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