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