VB编程自动改变List宽度和高度

来源:百度知道 编辑:UC知道 时间:2024/05/27 06:34:36
利用dir函数递归搜索目录将结果输入 list
发现list的宽度不能改变
现在想对输入的结果进行检测是像素值不是字符数,然后将最大的值-5
就是list的宽度最好不要水平滚动条
我的意思是dir的结果是字符串,我要获取它的长度(像素不是字符数),用循环得到最大的长度,在将其赋给list,这样来改变宽度,不要间接的。要直接转换的。
i=GetWidth(List1, .List(0))中 .List是什么意思还有能你的代码我不怎么东能解释一下,或者如果检测Text该怎么写,你说了我就明白了,主要是要获取指定字符串的像素级宽度或高度。

问题似乎已经解决,只是发现有些字符宽度不相等。代码其实也是间接检测,但是就这样把,非常感谢。

给你一个函数,调用举例:
dim i as integer
i=GetWidth(List1, .List(0))
list1.width=i

'获取list1内字符的象素宽度
Function GetWidth(ListName As ListBox, Zfc As String) As Integer
Dim S As String, mFont As Long, i As Integer
S = StrConv(Zfc, vbFromUnicode)
mFont = Me.Font.Size
Me.Font = ListName.Font
GetWidth = LenB(S) * Me.TextWidth("A")
Me.Font.Size = mFont
End Function

list.width没有这个属性?
list.width=12345

Option  Explicit

Private  Sub  Command1_Click()
        Dim  i  As  Integer
        Dim  t  As  Long
        
        Label1.AutoSize  =  True
        Set  Label1.Font  =  List1.Font