Vb.net 已启用但不可选择的菜单项

Vb.net 已启用但不可选择的菜单项,vb.net,Vb.net,在WinForms应用程序中,我需要在动态创建的ContextMenuStrip中添加一些“标题”。 该标题是在ContextMenuStrip_打开事件处理程序中组成的可更改文本 为此,我尝试使用带有标签的ToolStripControlHost,如下所示: Dim labelItem As ToolStripControlHost = New ToolStripControlHost(New Label) ... labelItem.BackColor = Color.Transparent

在WinForms应用程序中,我需要在动态创建的ContextMenuStrip中添加一些“标题”。
该标题是在ContextMenuStrip_打开事件处理程序中组成的可更改文本

为此,我尝试使用带有标签的ToolStripControlHost,如下所示:

Dim labelItem As ToolStripControlHost = New ToolStripControlHost(New Label)
...
labelItem.BackColor = Color.Transparent
labelItem.ForeColor = Color.FromKnownColor(KnownColor.HotTrack)
labelItem.ToolTipText = "mytooltiptext"
mycontextmenu.Items.Add(labelItem)
那几乎可以,但是

我尝试禁用“labelItem”以避免点击和按键,然后它会自动变为灰色,不需要的内容也会自动变为灰色,并且不会显示tooltiptext。
若“labelItem”已启用,则颜色正常,不能使用键选择项目,但可以使用鼠标进行选择,鼠标单击时,它会自动聚焦。这也是不需要的,但会显示tooltiptext


在所描述的情况下,这里有没有一种方法可以使“labelItem”处于启用状态,并且能够显示ToolTiptText,但不可选择?简言之如何使一个项目如所述,它将是彩色的(已启用),但不会接受鼠标单击并聚焦?

不要禁用该项目。设置禁用状态映像,然后在单击事件处理程序中,忽略您不想激活的项目的大小写。

不要禁用该项目。设置禁用状态映像,然后在单击事件处理程序中,忽略您不想激活的项的大小写。

已启用
已禁用
是控件外观和行为的预定义定义<代码>禁用将始终意味着无法单击控件

如果您需要其他行为,您需要自己编写。我建议跟踪表单中的两个全局变量:项目是否应在布尔值中处于活动状态,以及当前哪个对象在对象中具有焦点。然后使用这些来编写单击事件行为。例如:

Public Class Form1
    Public RunEvent As Boolean
    Public HasFocus As Object

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If RunEvent Then
            'Do something
        Else
            HasFocus.Focus()
        End If
    End Sub
End Class

启用
禁用
是控件外观和行为的预定定义<代码>禁用将始终意味着无法单击控件

如果您需要其他行为,您需要自己编写。我建议跟踪表单中的两个全局变量:项目是否应在布尔值中处于活动状态,以及当前哪个对象在对象中具有焦点。然后使用这些来编写单击事件行为。例如:

Public Class Form1
    Public RunEvent As Boolean
    Public HasFocus As Object

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If RunEvent Then
            'Do something
        Else
            HasFocus.Focus()
        End If
    End Sub
End Class

听起来你想要
CueText
听起来你想要
CueText