c# WinForm 控件样式 _____

问题描述

c# WinForm 控件样式 _____

自己用 WinForm 拖控件做出来的程序样式:

Win7 系统样式:

请问 Win7 系统的控件样式是怎么做出来的?

以上面 ListView 为例。项选中的时候跟 Win7 系统的差好远。

我是想知道原理,有代码的话最好啦!

解决方案

 static class NativeMethods
{
    public const int WM_CREATE = 0x1;

    [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
    public extern static int SetWindowTheme(
        IntPtr hWnd, string pszSubAppName, string pszSubIdList);
}

class MyListView : System.Windows.Forms.ListView
{
    protected override void WndProc(ref Message m)
    {
        if (m.Msg == Win.WM_CREATE) {
            NativeMethods.SetWindowTheme(this.Handle, "Explorer", null);
        }
        base.WndProc(ref m);
    }
}

用这个MyListView

解决方案二:

自己绘制效果,它有绘制item的事件,你也可以找一些第三方的,来美化你的程序

解决方案三:

http://www.codeproject.com/Articles/18078/Vista-Controls
原理介绍

解决方案四:

static class NativeMethods
{
public const int WM_CREATE = 0x1;

[DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
public extern static int SetWindowTheme(
    IntPtr hWnd, string pszSubAppName, string pszSubIdList);

}

class MyListView : System.Windows.Forms.ListView
{
protected override void WndProc(ref Message m)
{
if (m.Msg == Win.WM_CREATE) {
NativeMethods.SetWindowTheme(this.Handle, "Explorer", null);
}
base.WndProc(ref m);
}
}

解决方案五:

自定义消息处理并改变显示效果

解决方案六:

C# Winform 开源控件

时间: 2024-12-17 20:20:18

c# WinForm 控件样式 _____的相关文章

C# WinForm控件、自定义控件整理(大全)

转:http://www.cnblogs.com/top5/archive/2010/04/29/1724039.html 对C# WinForm开发系列收集的控件使用方面进行整理, 加入了一些文章, 不断补充充实, 完善这方面. 基础 - 常用控件 C# WinForm开发系列 - CheckBox/Button/Label/ProgressBar WinForm下CheckedListBox的数据绑定 Winform 下无闪烁走马灯效果实现 c#,winform,progressbar+la

Silverlight重写控件样式

在实际开发应用中,Silverlight默认控件样式并不能满足我们所有的需求,特别是对华丽界面的构造,需 要对现有控件进行皮肤重写.WPF/Silverlight中使用xaml描述界面,类似Css,它们同样有Style和Template .目前微软开源工具包中集成的均是复杂类型控件,如何修改它们的样式确实难倒了不少朋友,那么本节以分 析为主,结合对常用的NumericUpDown控件向大家讲解如何对现有控件进行样式重写. 首先打开工具包中的示例项目: 接着找到NumericUpDownSampl

ASP.NET 2.0服务器控件开发之控件样式

asp.net|服务器|控件|控件开发 随着.NET技术的不断发展和成熟,服务器控件越来越受到广大开发人员的喜爱.同时,服务器控件的发展也呈现出一些趋势,例如,功能越来越强大,很多功能逐渐从服务器端转移到客户端.另外,服务器控件也越来越美观.这可能与Windows操作系统越来越讲求功能与外观统一的发展思路有关.本文及其随后的几篇文章将重点介绍如何为服务器控件实现漂亮的外观.实际上,服务器控件的外观主要由样式属性决定.本文重点对实现控件样式的基本知识进行概括性讲解. 服务器控件样式简介 对于普通应

在IE中使用VS.net WinForm控件

控件 在Visual Studio .net中,类似于Applet或ActiveX控件,WinForm控件可以嵌入IE中使用.嵌入IE的Windows窗体控件不要求注册,不需用户提示即可激活.我们可以很方便地实现一些WebForm中实现起来相对麻烦的交互操作,结合.net Remoting等技术访问后台数据库,则可生成功能强大而且美观的WebForm页面. 使用该技术,需要客户端安装.net FrameWork及IE 6.0,在Windows 2003中已经自带了.net FrameWork.

c#扩展方法奇思妙用高级篇六:WinForm控件选择器

我们先看几个类图,深入认识一下我们常用的WinForm控件: 图1 ScrollableControl类图 图2 ButtonBase类图 图3 TextBoxBase类图 图4 ListControl类图 图5 Label类图 图6 其它常用 从图1中可以看出,Form与Button.Label一样,也是一个Control.

WinForm控件开发总结系列文章目录

WinForm控件开发总结(十二) 让控件处理导航键 WinForm控件开发总结(十一) 调试控件的设计时行为 WinForm控件开发总结(十) 为属性设置默认值 WinForm控件开发总结(九) 为属性提下拉式属性编辑器 WinForm控件开发总结(七) 为复杂属性的子属性提供编辑功能 WinForm控件开发总结(八) 为属性提供弹出式编辑对话框 WinForm控件开发总结(六) 控件属性类型转换器代码详解 WinForm控件开发总结(五) 为控件的复杂属性提供类型转换器 WinForm控件开

WinForm控件开发总结(十二) 让控件处理导航键

最近真的真的太忙了,以至于一个多月都没哟更新我的blog.昨天晚上,一个网上的朋友看了我的 ToolBox的文章,问我一个问题,他说如何让ToolBox控件也能响应键盘操作,也就是用Up,down按键来选 择工具箱控件里的Item,他添加了键盘事件,但是不起作用.一开始做这个控件的时候也只是演示一下控 件的制作过程,只用了很短的时间做了一个,只考虑了用鼠标选取,没有考虑键盘操作,我想要添加键盘 操作无非重载KeyDown事件,针对Up,Down做一些响应就可以了.可是添加了重载了OnKeyDow

WinForm控件开发总结(十) 为属性设置默认值

本系列的前面几篇文章讲解了如何来定义属性以及更有效的编辑属性,接下来我要讲一下控件属性的默 认值.如果我们希望自己开发的控件更易于被其它开发者使用,那么提供默认值是非常值得的. 如果你为属性设定了默认值,那么当开发者修改了属性的值,这个值在Property Explorer中将会以粗 体显示.VS为属性提供一个上下文菜单,允许程序员使用控件把值重置为默认值.当VS进行控件的串行化 时,他会判断那些值不是默认值,只有不是默认值的属性才会被串行化,所以为属性提供默认值时可以大 大减少串行化的属性数目

WinForm控件开发总结(七) 为复杂属性的子属性提供编辑功能

前面的几篇文章中,我们给控件添加一个复杂的类型Scope,并且给它的类型提供的一个类型转换器, 现在我们可以在属性浏览器中编辑它的值,并且它的值也被串行化的源代码里了.但是你有没有发现,在 属性浏览器里编辑这个属性的值还是不太方便.因为属性只是"10,200"这种形式的,所以,你必须按 照这种格式来修改,一旦格式错误就会引发异常,比如输入一个"10200".我们期望这个属性的每一子 属性都能够被独立的编辑就好了,这并非不能实现,而且实现还很简单. 为了在属性浏览器里