winforms – .NET ListView和Windows 7
也许我错过了什么,但……
但是,当我在WinForms中使用ListView时(即使是双缓冲),所选项目只有一个纯蓝色背景(并且没有悬停背景),这看起来比资源管理器中的列表更不专业. 有谁知道我应该调用哪些秘密API函数来使.NET ListView看起来与其他操作系统一致? 例如,这是我用C语言编写的一个应用程序,使用Windows 7中的标准ListView控件:(注意高亮和悬停矩形) 这里是使用WinForms在C#中重写该应用程序:(注意原始突出显示并且没有悬停) 好吧,我完全弄明白了,这可能会帮助那些被这个问题困扰的人.我开始注意到C Builder中的ListView控件在Windows 7下看起来“正确”,所以我查看了VCL的源代码,看看他们正在做什么样的魔术让ListView看起来像Windows中的列表控件资源管理器.我偶然发现了一行看起来很有希望的代码: SetWindowTheme(Handle,'explorer',nil); 从SDK文档中,此函数“使窗口使用与其类通常使用的不同的视觉样式信息集”. 所以,我尝试在我的WinForms ListView控件上调用此函数: [DllImport("uxtheme.dll",CharSet = CharSet.Unicode)] public static extern int SetWindowTheme(IntPtr hWnd,String pszSubAppName,String pszSubIdList); SetWindowTheme(myListView.Handle,"explorer",null); ……而且,按照上帝,它有效! ListView最终看起来像属于操作系统的其余部分!谢谢,Borland Inprise Embarcadero!你真的很擅长某事! (编辑:哈尔滨站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在[Windows Subsystem for Linux]中安装perl模块
- windows-runtime – 将Action绑定到XAML中UserControl的属性
- .net – 在Win32/COM方法上调用PInvoke时,通常有一个明显的
- windows平台xFsRedir程序更新(虚拟磁盘镜像存储方式改进和
- windows – procdump -t – 如何在进程终止时转储 – 使用?
- PHP7安装Redis扩展教程【Linux与Windows平台】
- Windows C线程参数传递
- php在windows环境下获得cpu内存实时使用率(推荐)
- NonSerialized 字段如果在dll 中读到数据写入MonoClassFiel
- 在Windows启动时使用参数启动应用程序
- window下强制杀死某个进程用taskkill /pid 进程号
- Microsoft Dynamics(Navision)vs C#.NET
- windows下编译支持https的libcurl
- windows修改PowerShell(命令提示符)默认中文编
- windows10 安装python.msi出现error 2502/2503解
- windows-phone-8 – Windows Phone 8.1应用程序无
- 获取与Windows Vista上的C#.Net连接的无线网络的
- windows – 使用cmd提示符搜索谷歌或其他搜索引擎
- pyshark无法在Windows 7(python)上捕获数据包
- windows-phone-8 – 新的Live磁贴在Windows Phon