Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何从字典值填充列表框?_Vb.net_Visual Studio_Dictionary_Listbox - Fatal编程技术网

Vb.net 如何从字典值填充列表框?

Vb.net 如何从字典值填充列表框?,vb.net,visual-studio,dictionary,listbox,Vb.net,Visual Studio,Dictionary,Listbox,网 我正在尝试创建一个函数,允许用户将文本输入RTB,如果该文本作为键存在于字典中,则列表框由与其相关的字典的所有值填充,每个值将列表框填充到新行中 第一行高亮显示,用户可以按下enter按钮,用高亮显示的文本替换RTB中的文本 我是VB新手,所以我知道的不多 这就是我目前所拥有的 Public Class Oxnay Private Sub Oxnay_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handl

我正在尝试创建一个函数,允许用户将文本输入RTB,如果该文本作为键存在于字典中,则
列表框
由与其相关的
字典
的所有
填充,每个
列表框
填充到新行中

第一行高亮显示,用户可以按下
enter按钮
,用高亮显示的文本替换RTB中的文本

我是VB新手,所以我知道的不多

这就是我目前所拥有的

Public Class Oxnay

Private Sub Oxnay_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Tsort()
End Sub
Private TDictionary As Dictionary(Of String, String())

Public Sub Tsort()
    TDictionary = New Dictionary(Of String, String())

    TDictionary.Add("ape", {"pl", "tz", "xu"})
    TDictionary.Add("lor", {"tv", "px"})
End Sub

Private Sub RichtextBox1_TextChanged(sender As Object, e As EventArgs) Handles RichTextBox1.TextChanged
    Dim lastword As String = RichTextBox1.Text.Split(" ").Last

    If RichTextBox1.ContainsKey(lastword) Then
        'display each string of the dictionary array related to lastword in different lines
        'highlight first line
        'Some[Code]
    Else
        ListBox1.Text = ""
    End If
End Sub
End Class

对于第一个“查找”部分,请尝试以下操作:

Private Sub RichtextBox1_TextChanged(sender As Object, e As EventArgs) Handles RichTextBox1.TextChanged
    Dim lastword As String = RichTextBox1.Text.Trim.Split(" ").Last
    ListBox1.Items.Clear()
    If Not IsNothing(TDictionary) AndAlso TDictionary.ContainsKey(lastword) Then
        ListBox1.Items.AddRange(TDictionary(lastword))
    End If
End Sub
然后用列表框中的选择替换当前选定的文本:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    If ListBox1.SelectedIndex <> -1 Then
        If RichTextBox1.SelectedText <> "" Then
            RichTextBox1.SelectedText = ListBox1.SelectedItem.ToString
        End If
    End If
End Sub
Private子按钮1\u单击(发送方作为System.Object,e作为System.EventArgs)处理按钮1。单击
如果ListBox1.SelectedIndex-1,则
如果RichTextBox1.SelectedText“”,则
RichTextBox1.SelectedText=ListBox1.SelectedItem.ToString
如果结束
如果结束
端接头

FYI,那不是VBScript,是VB.Net…我的错。我会修好的哇,太棒了。我从未想过用这种方式编写函数。我现在需要做的就是操作文本替换函数。我现在似乎有一个问题“…我正在尝试创建一个函数,允许用户将文本输入RTB”,那么如何将RichTextBox设置为只读?…如果按下a按钮,我将使用RichTextBox1.text=RichTextBox1.text+“a”。我让它工作了。再次感谢=]