这是我在表单中创建的列表框。
我在网上搜索并在我的代码中应用了我找到的解决方案,但没有任何效果。 这是我将项目添加到listBox的代码。
With mobjApplication
List1.AddItem vbCrLf + " " + .GetUIString("frmSettings.ServerConnections") + vbCrLf + "", 0
List1.AddItem " " + .GetUIString("frmSettings.WorkflowOptions") & "", 1
List1.AddItem " " + .GetUIString("frmSettings.Appearance") & "", 2
List1.AddItem " " + .GetUIString("frmSettings.FileLocations") & "", 3
End with
请有人帮帮我。
答案 0 :(得分:4)
也许:
Option Explicit
Private Const LB_SETITEMHEIGHT As Long = &H1A0&
Private Declare Function SendMessage Lib "user32" Alias "SendMessageW" ( _
ByVal hWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Private Sub Form_Load()
Const LIST_ITEM_HEIGHT As Long = 40 'Pixels.
With List1
.Font.Name = "Segoe UI"
.Font.Size = 14
SendMessage .hWnd, LB_SETITEMHEIGHT, 0, LIST_ITEM_HEIGHT
.AddItem "Server Connections"
.AddItem "Workflow Options"
.AddItem "Appearance"
.AddItem "File Locations"
End With
End Sub
答案 1 :(得分:0)
我根据@ Bob77的回答修改了我的代码,但是我无法使列表框项目垂直对齐到它的项目空间的中心。
根据Bob的说法,我们需要创建所有者绘制的列表框来实现它。 所以我试图找到另一个控件而不是listBox并尝试使用listView和Treeview。我按照@ Giorgio的回答尝试了“Segoe UI”。 Treeview使用这种字体给出了最大的项目间距,这有点满足了我的期望。
我的用户界面现在如下。
答案 2 :(得分:-2)