如何在运行时更改列表框中的选定项目文本?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在运行时更改列表框中的选定项目文本?相关的知识,希望对你有一定的参考价值。

我尝试使用这样的代码:

Private Sub TextBox1_Leave(sender As Object, e As EventArgs) Handles MyBase.Leave
  ' This way is not working
  ListBox1.SelectedItem = TextBox1.Text
  ' This is not working too
  ListBox1.Items(ListBox1.SelectedIndex) = TextBox1.Text
End Sub

表单看起来像这样:

我需要在用户在文本框中输入时更改该列表文本。是否有可能在运行时这样做?

答案

你正在使用表格的离开事件MyBase.Leave,所以当它发射时,它对你没用。

请尝试使用TextBox的TextChanged事件。

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) _
                                 Handles TextBox1.TextChanged

确保检查ListBox中是否实际选择了一个项目:

If ListBox1.SelectedIndex > -1 Then
  ListBox1.Items(ListBox1.SelectedIndex) = TextBox1.Text
End If
另一答案

使用双击选择列表框内的行(项)并更改或修改。而不是使用文本框使用ListBox1_MouseDoubleClick事件

Private Sub ListBox1_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseDoubleClick

然后在此事件中添加此代码

Dim intIndex As Integer = ListBox1.Items.IndexOf(ListBox1.SelectedItem)
Dim objInputBox As Object = InputBox("Change Item :","Edit", ListBox1.SelectedItem)
If Not objInputBox = Nothing Then
    ListBox1.Items.Remove(ListBox1.SelectedItem)
    ListBox1.Items.Insert(intIndex, objInputBox)
End If

要么

Dim objInputBox As Object = InputBox("Change Item :","Edit", ListBox1.SelectedItem)
If Not objInputBox = Nothing Then
   ListBox1.Items(ListBox1.SelectedIndex) = objInputBox 
End If

以上是关于如何在运行时更改列表框中的选定项目文本?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 sql 语句中保存组合框中的选定项目和文本框中的长数字?

如何使用 jQuery 从文本框中的列表中显示选定的选项?

如何将引导模式内的下拉列表的选定值获取到php中的文本框中

如何将数据绑定下拉列表中的选定项目置于会话状态?

如何在单击时从 Column(0) 中的列表框中引用值?

保存列表框中的选定项目以供其他类使用