禁用列表框VB6中的选定项

禁用列表框VB6中的选定项,vb6,listbox,Vb6,Listbox,我正在编写一个代码来禁用列表框中选定的项目。 i、 我想在列表中显示项目,但不想让用户选择它。 如下图所示。或类似的图像。 在VB6中可以吗? 请帮忙 尝试切换到ListView控件,然后将特定的ListItems设置为Ghosted。还有其他第三方列表或网格控件,尽管VB6控件现在越来越难找到 祝你好运 如果没有认真的所有者绘制乐趣,就无法使用列表框来完成此操作。但是,您可以使用列表视图控件来完成此操作 我所做的最接近于此的是更改禁用列表项的前景色,以及拦截的项单击事件,以便取消选中该项。列表

我正在编写一个代码来禁用列表框中选定的项目。 i、 我想在列表中显示项目,但不想让用户选择它。 如下图所示。或类似的图像。 在VB6中可以吗? 请帮忙


尝试切换到ListView控件,然后将特定的ListItems设置为Ghosted。还有其他第三方列表或网格控件,尽管VB6控件现在越来越难找到


祝你好运

如果没有认真的所有者绘制乐趣,就无法使用列表框来完成此操作。但是,您可以使用列表视图控件来完成此操作

我所做的最接近于此的是更改禁用列表项的前景色,以及拦截的项单击事件,以便取消选中该项。列表项的标记属性用于存储“已禁用”状态

我应该提到的是,我无法获得此代码来阻止在鼠标按钮完成时“选择”项目。要做到这一点,您必须进行一些子类化

应将以下类“ListViewWrapper”添加到项目中:

Option Explicit

Private Const m_ksDisabled                  As String = "D"

Private WithEvents m_oListView              As ListView

Public Sub Initialise(ByRef the_oListView As ListView)

    Set m_oListView = the_oListView

End Sub

Public Property Let ListItemEnabled(ByVal the_oListItem As ListItem, ByVal the_bEnabled As Boolean)

    If Not the_oListItem Is Nothing Then
        If the_bEnabled Then
            the_oListItem.Tag = Empty
            the_oListItem.ForeColor = vbWindowText
        Else
            the_oListItem.Tag = m_ksDisabled
            the_oListItem.ForeColor = vbGrayText
        End If
    End If

End Property

Public Property Get ListItemEnabled(ByVal the_oListItem As ListItem) As Boolean

    If Not the_oListItem Is Nothing Then
        ListItemEnabled = (the_oListItem.Tag <> m_ksDisabled)
    End If

End Property

Private Sub m_oListView_ItemClick(ByVal Item As MSComctlLib.ListItem)

    If Item.Tag = m_ksDisabled Then
        Set m_oListView.SelectedItem = Nothing
    End If

End Sub
Private m_oListViewWrapper              As ListViewWrapper

Private Sub Form_Load()

    Set m_oListViewWrapper = New ListViewWrapper
    m_oListViewWrapper.Initialise ListView

End Sub

Private Sub Command_Click()

    With m_oListViewWrapper
        .ListItemEnabled(ListView.SelectedItem) = Not .ListItemEnabled(ListView.SelectedItem)
    End With

End Sub