1

すべてのテキストボックスを収集して配列リストとして保存し、すべてのコンボボックスを2番目のリストとして保存するコードをいくつか持っています。これは「機能」していますが、ボックスの2-10を上から下に配置しているようです。最初のボックス下部に、ボックス 1、2、3、4、5 が 6 ~ 10 ではなく、2、3、4、5、次に 5 つの空白行が表示され、次に下部にボックス 1 が表示されます。どうすればこれを止めることができるのだろうか?つまり、空のボックスを無視します。担当者が 15 人に達したら、このプロジェクトの写真をいくつか投稿し、苦労しているさまざまな分野で多くの助けを求めます。使用中のコードは次のとおりです FORM 2 - コレクション

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim f As New Form3()
    Dim allValues As New List(Of String)()
    For Each xTextBoxes As TextBox In Me.Controls.OfType(Of TextBox)()
        f.i.AddRange(xTextBoxes.Text.Split(","))
    Next
    Dim allValues2 As New List(Of String)()
    For Each xComboBoxes As ComboBox In Me.Controls.OfType(Of ComboBox)()
        f.l.AddRange(xComboBoxes.Text.Split(","))
    Next
    f.ShowDialog()

End Sub

フォーム 3 での印刷

Public i As New List(Of String)()
Public l As New List(Of String)()

Private Sub Form3_Load(sender As Object, e As EventArgs) Handles Me.Load
    ListBox1.Items.AddRange(i.ToArray())
    ListBox2.Items.AddRange(l.ToArray())
End Sub

テキストボックス 1,2,3,4 に 111,111,111、次に 222,222,222、次に 33,33 および 44,44 が入力されている場合、これはリストボックスに表示される方法です

222
222
222
33
33
44
44
(空白行)
(空白行)
(空白行)
(空白行)
(空白行)
(空白行)
111
111
111

4

2 に答える 2

2

次のように、メソッドをRemoveEmptyEntries呼び出すときにオプションを使用することをお勧めします。Split

f.i.AddRange(xTextBoxes.Text.Split({","}, StringSplitOptions.RemoveEmptyEntries))

何らかの理由でそれが機能しない場合は、使用する前に値が空かどうかを確認します。

If xTextBoxes.Text <> String.Empty Then
    f.i.AddRange(xTextBoxes.Text.Split(","))
End If

ところで、あなたは実際にどこallValuesかを使用していませんallValues2...

于 2013-04-09T15:05:27.430 に答える