【问题标题】:C# Windows7/Vista style ListViewC# Windows7/Vista 风格的 ListView
【发布时间】:2011-05-26 15:59:30
【问题描述】:

当我在 VS2008 的详细信息视图中创建一个 ListView 时,它会创建一个看起来相当旧的列表视图。它没有(例如)WinVista 和 Win7 中的文件资源管理器所具有的任何花哨的悬停效果和酷炫的蓝色边框。例如看图片:

总而言之,我怎样才能让 C# VS2008 中的 ListView 看起来像上图中的那个? (右侧VS2008 listview对比)

谢谢

【问题讨论】:

    标签: c# winforms listview windows-7 windows-vista


    【解决方案1】:

    尝试拨打SetWindowTheme

    像这样:

        [DllImport("uxtheme.dll", ExactSpelling=true, CharSet=CharSet.Unicode)]
        private static extern int SetWindowTheme(IntPtr hwnd, string pszSubAppName, string pszSubIdList);
    
       // The constructor:
       public MyForm() {
          SetWindowTheme(this.listView1.Handle, "Explorer", null);
       } 
    

    【讨论】:

    • @GvS:有没有办法为您的整个应用程序执行此操作?像 Applicaiton.EnableVisualStyles() 之类的东西?
    • 您可能还想设置HotTracking 以启用酷悬停风格。 @JohnGietzen 只觉得我能想到的是一个 custom message filter 寻找 WM_CREATE。
    • 这对WinXP系统有影响吗?
    【解决方案2】:

    您检查过Windows API Code Pack 吗?它有许多 Win7 风格的控件。我想它有你想要的。

    【讨论】:

      猜你喜欢
      • 2010-11-30
      • 2010-10-08
      • 1970-01-01
      • 1970-01-01
      • 2011-01-24
      • 2011-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多