ListBox添加项目间距

时间:2017-07-27 06:04:02

标签: listbox vb6

这是我在表单中创建的列表框。

enter image description here

我需要的是通过添加项目间距来修改listBox项目列表。 enter image description here

我在网上搜索并在我的代码中应用了我找到的解决方案,但没有任何效果。 这是我将项目添加到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

请有人帮帮我。

3 个答案:

答案 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的回答修改了我的代码,但是我无法使列表框项目垂直对齐到它的项目空间的中心。

enter image description here

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

我的用户界面现在如下。

答案 2 :(得分:-2)

您无法在ListBox中添加“项目空间”。图像中的项目之间没有空格(Word选项)。 要模仿下面的列表(Word选项),请尝试设置列表框:

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

enter image description here