大家好!我一直在寻找一个解决方案,但我画了一个空白?我用的是Win Forms,VS 2019,Win10,VB .NET.
"我需要什么"
1.我正在使用文件夹中的文件名填充组合框; 2.单击组合框中的一个项目,使用OpenFileDialog选择一个文件,该文件将使用文本文件中与组合框中的选定项目相对应的行填充ListBox。这一切都正常!
我想做的是:当用户单击组合框中的项目时,我希望打开“打开文件”对话框,其中包含与组合框中单击的项目相对应的已选定文件。
我正在使用的代码
我将在组合框的SelectedIndexChanged事件中使用以下代码,以使用“打开文件”对话框打开默认文件夹,用户可以在该文件夹中选择要用于填充列表框的文件:
Dim openfile = New OpenFileDialog() With {.Filter = "Text (*.Text)|*.txt"}
With openfile
.InitialDirectory = "C:\Users\" + "username" + "\Documents\WIN32 VIEWER"
End With
If (openfile.ShowDialog() = System.Windows.Forms.DialogResult.OK) Then
For Each line As String In File.ReadAllLines(openfile.FileName)
ListBox1.Items.Add(line)
Next
End If
"我所尝试的"
我已经成功地在另一个程序中使用了下面的代码,在“打开文件”对话框中选择了相应的文件。但是,我不知道如何将此代码应用到上面的“我正在使用的代码”示例中。我尝试过了,但是找不到一种方法将“/select”命令应用到我的示例代码中?也许有一种不同的方法可以做到这一点?如果有人能给予我一个例子或指出一个例子,如何实现这一点,我将非常感激!
Dim sFileName As String = ofd.FileName (Original code uses: "C:\Images\Test.png")
Process.Start("explorer.exe", "/select," & sFileName)
1条答案
按热度按时间pzfprimi1#
几点建议:
DisplayFile
),该类使用File(完整路径)进行初始化,然后公开在您的上下文中有用的属性和方法:Title
为的文件(这里,File name不带扩展名)GetLines()
)ToString()
以返回Title
属性值在窗体中,从
Directory.Getfiles()
初始化此类对象的列表。使用此集合初始化ComboBox的DataSource。由于未设置
DisplayMember
,因此每个Item都显示[object].ToString()
的结果:在本例中,[DisplayFile].ToString()
返回Title
属性值(表示不带扩展名的文件名)由于ComboBox的每个Item都是
DisplayFile
对象,因此将[ComboBox]SelectedItem
转换为DisplayFile
并调用其GetLines()
方法,以便用File:订阅ComboBox的
SelectionChangeCommitted
事件