首页 > 解决方案 > 单击标题栏后,Vscrollbar 不会消失

问题描述

我的项目中有一个 vscrollbar,如果鼠标点击它之外的任何东西,我想让它消失。我已经尝试过 (Leave) 和 (Lost Focus) 事件并且他们成功了:

Private Sub VScrollBar1_Leave(sender As Object, e As EventArgs) Handles VScrollBar1.Leave

    VScrollBar1.Visible = False

End Sub
Private Sub VScrollBar1_LostFocus(sender As Object, e As EventArgs) Handles VScrollBar1.LostFocus

    VScrollBar1.Visible = False

End Sub

问题是单击(标题栏)时,没有任何反应,滚动条仍然可见,有什么建议吗?

标签: vb.netwinformsscrollbartitlebar

解决方案


标题栏没有点击事件,但您可以为它(创建)一个

您的代码工作正常,您只需要添加以下代码:

Private Const WM_NCLBUTTONDOWN As Long = &HA1
Protected Overrides Sub DefWndProc(ByRef m As System.Windows.Forms.Message)
    If CLng(m.Msg) = WM_NCLBUTTONDOWN Then
        Focus()
    End If
    MyBase.DefWndProc(m)
End Sub

这将专注于您的表单,这将使您的代码完美运行......


推荐阅读