winforms – ScrollBar不会在Select()上滚动
发布时间:2020-12-14 04:00:06 所属栏目:Windows 来源:网络整理
导读:我将焦点放在带有vScrollBar.Select()的滚动条上; 滚动条变得聚焦但不会滚动鼠标滚轮. 仅当鼠标光标位于滚动条上时才会滚动. 如何在Select()之后滚动滚动条而不将光标放在滚动条上? Environment: Windows 10,Windows forms,.NET 4.0 编辑 当我用笔记本电脑
我将焦点放在带有vScrollBar.Select()的滚动条上;
滚动条变得聚焦但不会滚动鼠标滚轮. 仅当鼠标光标位于滚动条上时才会滚动. 如何在Select()之后滚动滚动条而不将光标放在滚动条上?
编辑 当我用笔记本电脑触摸板上的两个手指“滚动”时,我注意到滚动条正确滚动,但不是鼠标滚轮. 解决方法
我刚刚启动并运行Win10,确认.这是新的Windows 10功能的副作用,在“设置”>中配置.装置>鼠标&触摸板.它被命名为“当我将鼠标悬停在它们上时滚动非活动窗口”,它默认打开.
This web page提到它.
这实际上是一个非常好的功能,我个人肯定会保持它,很可能你的用户也会这样.以前的Windows版本将鼠标滚轮消息发送到具有焦点的控件,使许多习惯了鼠标行为的用户神秘化,例如浏览器.请注意滚动条有帮助,它会重新绘制拇指以指示当您将鼠标移开栏时它不再处于活动状态. 修复它在技术上是可行的,您必须将消息重定向回滚动条.什么都不是特别漂亮: public Form1() { InitializeComponent(); panel1.MouseWheel += RedirectMouseWheel; } private bool redirectingWheel; private void RedirectMouseWheel(object sender,MouseEventArgs e) { if (this.ActiveControl != sender && !redirectingWheel) { redirectingWheel = true; SendMessage(this.ActiveControl.Handle,0x020A,new IntPtr(e.Delta << 16),IntPtr.Zero); redirectingWheel = false; var hmea = (HandledMouseEventArgs)e; hmea.Handled = true; } } [System.Runtime.InteropServices.DllImport("user32.dll")] private static extern IntPtr SendMessage(IntPtr hWnd,int msg,IntPtr wp,IntPtr lp); 但是不要跳枪,你的用户很容易期待Win10的行为,最终:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 通过Windows GPO管理Acrobat Reader和Flash播放器等应用程序
- 在Emacs Slime Clojure Windows设置中,无法加载clojure-aut
- windows – 使用robocopy进行IIS复制的WordPress
- windows-8 – 如何在Windows 8中将sqlite表和列映射到c#类
- windows10系统关闭自动更新服务
- .net – 语音识别 – 语音API或算法
- ms-access – 从Microsoft Access导出代码
- 在netbeans中为.dll / .so文件提供“java.library.path”
- windows-8 – 使用WinRT API编写的应用程序是否可以在Windo
- tls1.2 – Windows Server 2012 r2中的TLS_ECDHE_RSA_WITH_
推荐文章
站长推荐
- 如何在Windows上修补?
- Windows – 如何指定对.cabal中外部C库的依赖?
- 在Windows上的ssh客户端和服务器上的Mercurial
- 窗口 – 我应该在64位构建中定义_WIN32和_WIN64吗
- win7右键菜单调整顺序
- windows-server-2008 – 为什么选择MPIO而不是80
- 通过Windows脚本宿主以UTF-8编码运行JScr??ipt或
- windows-server-2008 – Web应用程序的100%正常
- windows-server-2012 – Hyper-V动态内存无法正确
- Windows XP中的Windows-xp – inno setup.exe失败
热点阅读