2017-07-27 120 views
2

这是我在表单中创建的列表框。列表框添加项目间距

enter image description here

我需要的是通过增加项目的间距如下修改ListBox中的项目清单。 enter image description here

我搜索通过网络和应用我找到了解决方案,在我的代码,但没有奏效。 这是我添加项目到列表框的代码。

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 

请有人帮我这个。

回答

5

也许:

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 
+0

它工作得很好。谢谢 –

+0

请告诉我应该在代码中添加什么样的改进才能使列表中的文本添加到中间。 –

+1

可能只适用于所有者绘制的ListBox。 – Bob77

-2

您不能在ListBox中添加'项目空间'。图像中的项目之间没有空格(Word选项)。 为了模仿以下(Word选项)的列表中,尝试设置您的列表框:

Private Sub Form_Load() 
    List1.Font.Name = "Segoe UI" 
    List1.Font.Size = 20 
End Sub 

enter image description here

0

我修改了代码,每@ Bob77的答案,但我无法将列表框项目垂直对齐到项目空间的中心。

enter image description here

按鲍勃,我们需要创建所有者绘制列表框来实现它。 所以我试图找到另一个控件而不是listBox,并尝试使用listView和Treeview。根据@Giorgio的回答,我尝试了“Segoe UI”。 Treeview用这种字体给出了最多的项目间距,并且它在一定程度上满足了我的期望。

现在我的用户界面如下。