Listbox显示文件名字和路径的问题
我想把Listbox弄成两列,第一列放文件名,第二列放文件的全路径名。当点Button时,用OpenFileDialog打开文件,然后listbox上面第一列显示文件名字,第二列显示文件的路径。
请帮忙啊,谢谢。
[解决办法]
不用listbox控件,改用listview控件即可
非要用listbox控件的话,可以拼接字符串,数据分为2部分,但实际还是一个字符串,取值时分开取即可
s=OpenFileDialog.filename
s1= GetFileName(s)
s2= left(s,len(s)-len(s1))
Listbox.additem s1 & " " & s2
Private Function GetFileName(sFile As String) As String
'传入带全路径的字符串,返回文件名
Dim i As Long, s As String, s1 As String
s1 = StrReverse(sFile)
For i = 1 To Len(sFile)
s = Mid(s1, i, 1)
If s = "\" Then
GetFileName = StrReverse(Left(s1, i - 1))
Exit For
End If
Next
End Function
[解决办法]
用listview, listbox貌似没有这个功能
[解决办法]
VB 标准控件中的 ListBox 不行,搞成多列的也不可控。
用 ListView控件 或 Microsoft Form 2.0 中的 ListBox 吧。
[解决办法]
ListView控件 肯定比list控件好用,如果用多列,事实上,其它表格控件都比比list控件好用,比如 MSFlexGrid。
[解决办法]
'list1属性中设置Columns为2,运行时不可变
List1.Height = List1.FontSize
List1.AddItem "文件名"
List1.AddItem "文件路径"
[解决办法]
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim L1 As Int16 OpenFileDialog1.ShowDialog() ListBox1.MultiColumn = True ListBox1.Width = 500 ListBox1.Height = 16 ListBox1.Items.Add(Mid(OpenFileDialog1.FileName(), InStrRev(OpenFileDialog1.FileName(), "\") + 1)) ListBox1.ColumnWidth = Len(Mid(OpenFileDialog1.FileName(), InStrRev(OpenFileDialog1.FileName(), "\") + 1)) * 7 ListBox1.Items.Add(Mid(OpenFileDialog1.FileName(), 1, InStrRev(OpenFileDialog1.FileName(), "\") - 1)) End Sub
[解决办法]
你一定要用 ListBox , Microsoft Form 2.0 中的 ListBox 就可以满足你的要求。
你用的是 Microsoft Visual Studio .NET 的开发环境吧?
在‘工具箱’窗口中点鼠标右键,再在弹出菜单中点“添加/移除项(I)…”,再在弹出窗口中点“COM组件”。
你点“浏览”按钮选择 %SystemRoot%\System32\FM20.dll 就可以了。
剩下的,就看你会不会用它了…………
[解决办法]
lst设置成2列是可以的 只要高度和宽度设置得合适就行
不过你这第一列全是文件名第二列全是路径貌似不好设置呢
或者你试试长定文件名看
[解决办法]
Option Explicit '强制宣告定义变量
Dim AppDisk$, SelectFile$, i%, PathList$(), S '定义变量
Private Sub Form_Load()
'将窗体居中显示 (屏幕宽度减去窗体的宽度)除以2 , (屏幕高度减去窗体的高度)除以2
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
'将本地路径赋值给变量 AppDisk
AppDisk = IIf(Right(App.Path, 1) = "\", App.Path, App.Path & "\")
End Sub
Private Sub Command1_Click()
On Error GoTo Errh
CommonDialog1.FileName = ""
With CommonDialog1
.DialogTitle = "请选择文件"
.CancelError = True
.Filter = "图片格式(*.bmp;*.jpg;*.gif;*.png;*.ico)|*.bmp;*.jpg;*.gif;*.png;*.ico|位图格式(*.bmp)|*.bmp|GIF格式(*.gif)|*.gif|JPEG格式(*.jpg)|*.jpg|PNG格式(*.png)|*.png"
.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer '复选文件必加
.MaxFileSize = 32767
.ShowOpen
End With
SelectFile = CommonDialog1.FileName
List1.Clear
S = Split(SelectFile, Chr(0))
ReDim Preserve PathList$(UBound(S))
'*******************************************************************************
If UBound(S) = 0 Then
List1.AddItem CommonDialog1.FileTitle
PathList(0) = S(0)
Else
S(0) = IIf(Right(S(0), 1) = "\", S(0), S(0) & "\")
For i = 1 To UBound(S)
List1.AddItem S(i)
PathList(i - 1) = S(0) & S(i)
Next i
End If
Errh:
If Err > 0 Then Exit Sub
End Sub
Private Sub List1_Click()
MsgBox PathList(List1.ListIndex)
End Sub