[VB.NET]如何将从另一个表单返回的字符串项添加到特定位置的列表框而不是另一个?

时间:2010-11-22 23:19:12

标签: vb.net

这个想法是有一个带有项目的列表框,并且你想要修改列表中间的项目。您选择该项目并单击“修改”按钮,将出现一个新表单,其中先前选择的第一个表单中的项目数据已准备好在文本框中进行修改。修改并单击“确定”后,第二个表单假设将修改后的字符串返回到第一个表单,并将修改后的字符串插入到同一个位置而不是最初选择的项目中,因此看起来它已被编辑给用户。

2 个答案:

答案 0 :(得分:1)

编辑: 将伪代码转换为实际的VB.NET代码以刷新我自己的内存:D

string = InputBox("Enter text")
// Do whatever you want with the string
x = listBox.SelectedIndex
listBox.Items(x) = string

您也可以尝试Content代替Text

答案 1 :(得分:0)

确保弹出的表单是Modal。以下是您可以执行的操作的简单示例。 (这假设您的列表框项目是字符串,并且仅用于编辑最多三个列表框项目。如果列表要大得多,您将需要寻求不同的架构。)

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Dim intTextboxCounter As Integer = 0
    For Each i As Integer In Form1.ListBox1.SelectedIndices

        Select Case intTextboxCounter
            Case 0
                TextBox1.Text = Form1.ListBox1.Items(i)
            Case 1
                TextBox2.Text = Form1.ListBox1.Items(i)
            Case 3
                TextBox3.Text = Form1.ListBox1.Items(i)
        End Select

        intTextboxCounter += 1

    Next

End Sub

当它加载时,它将旋转选定的列表项并将其值放在文本框中。要更新值...

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim intTextboxCounter As Integer = 0
    For Each i As Integer In Form1.ListBox1.SelectedIndices

        Select Case intTextboxCounter
            Case 0
                Form1.ListBox1.Items(i) = TextBox1.Text
            Case 1
                Form1.ListBox1.Items(i) = TextBox2.Text
            Case 2
                Form1.ListBox1.Items(i) = TextBox3.Text
        End Select

    Next

End Sub