【发布时间】:2020-06-25 18:08:11
【问题描述】:
我的项目中有一个 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
问题是单击(标题栏)时,没有任何反应,滚动条 仍然可见,有什么建议吗?
【问题讨论】:
-
表单本身、PictureBox、Panels、TableLayoutPanels、其他滚动条等也会有同样的问题,即所有不会窃取 焦点。
-
我的意思是,也许您可以处理
WM_MOUSELEAVE(或 MouseLeave 事件)。您可以将 ScrollBar 添加到面板(将其设置为TabStop = true),比滚动条稍大,并使用 ScrollBar 的 MouseLeave 事件来隐藏它并使用 Panel MouseEnter 事件,如果/当ScrollBar.ClientRectangle在延迟过去后包含MousePosition时。
标签: vb.net winforms scrollbar titlebar