利用winform实现漂亮窗体(QQ、360)【带源码】

.Net技术 码拜 10年前 (2015-05-10) 1133次浏览 0个评论
 

其实啥也不想说,但经过上次传图后,有些网友就说直接放几个PictureBox贴上图片就可以搞定,但是我想说,那样是可以做出来,但是效率会受到影响,你们根本就不懂的什么叫“精益求精”,中国有你们这样的程序员真是可悲,本代码只作共同学习之用,比我弱的可以学习,比我强的就路过~~~(PS:我已经到了你们曾经的水平!),直接上图和下载地址:http://download.csdn.net/detail/fkuewfnh/4940455
右下角提示框:
利用winform实现漂亮窗体(QQ、360)【带源码】
QQ的主界面与Tab控件:(PS:在这里我需要说句,如果想Tab的选项的宽度平均铺满整个控件,可以在父窗体的改变大小事件中去改变)
利用winform实现漂亮窗体(QQ、360)【带源码】
QQ主界面与TextBox,CheckBox,RadioButton等控件:
利用winform实现漂亮窗体(QQ、360)【带源码】
效果图:
利用winform实现漂亮窗体(QQ、360)【带源码】
360窗体:
利用winform实现漂亮窗体(QQ、360)【带源码】

要6分啊,虽然是挺值的,但是下载的分数真的好难获取
建议以后将积分设置为0分,方便别人下载。

也许你要说了,设置0分,别人下载我的资源,赚的积分少了怎么办?其实是这样的,csdn对每个资源的得分都是100分封顶,这意味着,你设置为5分,只有前20次下载你会得5分,之后的就不会了。而设置为0分,前100次下载,每次给你1分,之后也不会再给了。因此,你知道了,最终效果都是一样的。那么如何对你最有利呢?显然下载速度(单位时间的下载量)x分数越大越有利,但是我告诉你,分数是线性增加的,对应的下载速度是几何递减的。所以其实设置0分,对你也最有利。

引用 2 楼 leafmao 的回复:

要6分啊,虽然是挺值的,但是下载的分数真的好难获取

为求一个吉利点的数字~~~好在8分前面有和6

引用 3 楼 caozhy 的回复:

建议以后将积分设置为0分,方便别人下载。

也许你要说了,设置0分,别人下载我的资源,赚的积分少了怎么办?其实是这样的,csdn对每个资源的得分都是100分封顶,这意味着,你设置为5分,只有前20次下载你会得5分,之后的就不会了。而设置为0分,前100次下载,每次给你1分,之后也不会再给了。因此,你知道了,最终效果都是一样的。那么如何对你最有利呢?显然下载速度(单位时……

嗯,这就去改!

引用 5 楼 fkuewfnh 的回复:

引用 3 楼 caozhy 的回复:建议以后将积分设置为0分,方便别人下载。

也许你要说了,设置0分,别人下载我的资源,赚的积分少了怎么办?其实是这样的,csdn对每个资源的得分都是100分封顶,这意味着,你设置为5分,只有前20次下载你会得5分,之后的就不会了。而设置为0分,前100次下载,每次给你1分,之后也不会再给了。因此,你知道了,最终效果都是一样的。那么如……

改不了了,你可以删除了资源重新发一次,我帮你修正链接。

又是404
哇,很不错,谢谢分享~
引用 6 楼 caozhy 的回复:

引用 5 楼 fkuewfnh 的回复:引用 3 楼 caozhy 的回复:建议以后将积分设置为0分,方便别人下载。

也许你要说了,设置0分,别人下载我的资源,赚的积分少了怎么办?其实是这样的,csdn对每个资源的得分都是100分封顶,这意味着,你设置为5分,只有前20次下载你会得5分,之后的就不会了。而设置为0分,前100次下载,每次给你1分,之后也不会再给了。因……

嗯,刚才删除了,正在上传文件,但老是上传失败!

引用 9 楼 fkuewfnh 的回复:

引用 6 楼 caozhy 的回复:引用 5 楼 fkuewfnh 的回复:引用 3 楼 caozhy 的回复:建议以后将积分设置为0分,方便别人下载。

也许你要说了,设置0分,别人下载我的资源,赚的积分少了怎么办?其实是这样的,csdn对每个资源的得分都是100分封顶,这意味着,你设置为5分,只有前20次下载你会得5分,之后的就不会了。而设置为0分,前100次下载……

关闭浏览器,清除下缓存,再打开试试看

啊………………404错误啦
聪明的人都会把下载分设置成0分。。。。。。。。。。。。
不解释不掩饰
404 错误
不使用控件拼凑是一个非常好并且也是必须的方式,但这使得绘制代码数倍增加。但光从这几个界面来看,技术上还比较一般,希再努力努力。
好东西,
不错,
等待下载
下载了,看了一下真的很不错,顶
其实。设置1分也行。为的是不让非CSDNer下载。
引用 3 楼 caozhy 的回复:

建议以后将积分设置为0分,方便别人下载。

也许你要说了,设置0分,别人下载我的资源,赚的积分少了怎么办?其实是这样的,csdn对每个资源的得分都是100分封顶,这意味着,你设置为5分,只有前20次下载你会得5分,之后的就不会了。而设置为0分,前100次下载,每次给你1分,之后也不会再给了。因此,你知道了,最终效果都是一样的。那么如何对你最有利呢?显然下载速度(单位时……

地址已更新:http://download.csdn.net/detail/fkuewfnh/4940455

引用 2 楼 leafmao 的回复:

要6分啊,虽然是挺值的,但是下载的分数真的好难获取

地址已更新:http://download.csdn.net/detail/fkuewfnh/4940455

引用 7 楼 a954105626 的回复:

又是404

地址已更新:http://download.csdn.net/detail/fkuewfnh/4940455

其实楼主做的东西真的不错的,只是措辞上有些那个,用picutrebox贴图拼控件本身也没什么错,不同的人做法不同,不是所有的人都会去计算绘制,毕竟每个人都是从菜鸟开始,一路摸索成长,也许今天别人拼控件,明天就是纯代码绘制了也说不定。另外,中国的程序员是悲哀,不是他们个人的问题,则是国家体制的问题,国家对软件业支持力度极小,不足以推动大批高级程序人才的出现。

利用winform实现漂亮窗体(QQ、360)【带源码】
利用winform实现漂亮窗体(QQ、360)【带源码】
利用winform实现漂亮窗体(QQ、360)【带源码】
利用winform实现漂亮窗体(QQ、360)【带源码】
利用winform实现漂亮窗体(QQ、360)【带源码】

上面为最近做的一个试验品,试验自定义皮肤的动态性能效率,以及皮肤对背景图片的智能适应色调更换。图中这些皮肤的调色是根据用户选择的背景图片而自动更改的,并且程序会通过一些算法,自动获取背景图片中的部分元素作为皮肤元素。

引用 23 楼 dylike 的回复:

其实楼主做的东西真的不错的,只是措辞上有些那个,用picutrebox贴图拼控件本身也没什么错,不同的人做法不同,不是所有的人都会去计算绘制,毕竟每个人都是从菜鸟开始,一路摸索成长,也许今天别人拼控件,明天就是纯代码绘制了也说不定。另外,中国的程序员是悲哀,不是他们个人的问题,则是国家体制的问题,国家对软件业支持力度极小,不足以推动大批高级程序人才的出现。

……

你所说的我赞同,但是当你花了心血去写出来的东西,人家用那样的话,还去贬低你的作品,你就不会这样想了。就算实现的差,我们可以去给出建议,鼓励新手去进步。

楼主既然是分享代码,就不要分数了,0分时人家下载一次你也能拿到一分的。
引用 25 楼 qiujialongjjj 的回复:

楼主既然是分享代码,就不要分数了,0分时人家下载一次你也能拿到一分的。

0分的我上传了,但是始终都没有显示出来,没办法,就先把1分的资源给整上来了。

引用 14 楼 perock 的回复:

404 错误

感谢你的回复,这只是部分控件,其它的还没有整理好~待有空了再整理整理了上传上来!

引用 27 楼 fkuewfnh 的回复:

引用 14 楼 perock 的回复:404 错误

感谢你的回复,这只是部分控件,其它的还没有整理好~待有空了再整理整理了上传上来!

已经下载到了,看了代码,真的不错,非常值得学习,您一连改写了好几个控件,真的不错!

很棒!继续加油。
我这水平,看代码都好吃力,好好研究下
支持一下LZ,最近我做界面都是往简洁 干净方面发展,
以前挺喜欢炫丽的,现在发现那些都是浮云
我支持微软的WPF
引用 31 楼 kansousama 的回复:

支持一下LZ,最近我做界面都是往简洁 干净方面发展,
以前挺喜欢炫丽的,现在发现那些都是浮云

我现在一有时间就用winform整Metro风格的界面

引用 32 楼 niss 的回复:

我支持微软的WPF

对于我们这种计算机在说用WPF效率比较低,显示的比较慢

很好很强大,学习了
引用 3 楼 caozhy 的回复:

建议以后将积分设置为0分,方便别人下载。

也许你要说了,设置0分,别人下载我的资源,赚的积分少了怎么办?其实是这样的,csdn对每个资源的得分都是100分封顶,这意味着,你设置为5分,只有前20次下载你会得5分,之后的就不会了。而设置为0分,前100次下载,每次给你1分,之后也不会再给了。因此,你知道了,最终效果都是一样的。那么如何对你最有利呢?显然下载速度(单位时……

既然是这样,那么csdn为什么还让别人设置分数,直接都是0分下载就好了

靠 这样的东西 不来凑一个热闹叫我情何以堪、、、、
引用 23 楼 dylike 的回复:

其实楼主做的东西真的不错的,只是措辞上有些那个,用picutrebox贴图拼控件本身也没什么错,不同的人做法不同,不是所有的人都会去计算绘制,毕竟每个人都是从菜鸟开始,一路摸索成长,也许今天别人拼控件,明天就是纯代码绘制了也说不定。另外,中国的程序员是悲哀,不是他们个人的问题,则是国家体制的问题,国家对软件业支持力度极小,不足以推动大批高级程序人才的出现。

……

要不 把你的代码也放出?、、

赞一个~ 
咋 还没有推荐 啊。。。
此帖必火。。。
很不错的实例.支持
此帖必火。出售前排~
支持
下载了。谢谢哦。
引用 2 楼 leafmao 的回复:

要6分啊,虽然是挺值的,但是下载的分数真的好难获取

不是1分么

真的是好东西!
楼主有自己的个性,我喜欢,可是我的机器上是05的貌似用不了
嗯嗯 很有参考价值 3Q
控件很漂亮,顶个,但是真心很迷茫Winform做出来东西性能是不是不怎么好?为什么我做个圆角矩形的窗体,不设置透明背景直接new Region()用刷子填充,弹出来的窗体先出白色的,后出内容,闪啊闪美化的热情都没了,求高手解惑!~~~为什么QQ啊,迅雷啊,之类的没先出一部分后又出一部分??
本人新手,勿笑哈
引用 51 楼 hr3773 的回复:

楼主有自己的个性,我喜欢,可是我的机器上是05的貌似用不了

你可以用记事本把sln文件打开,然后将版本改成你计算机上的版本就可以打开了应该,主要改第一行第二行的数据,第一行改成9.00,第二行改成# Visual Studio 2005

引用 53 楼 xmcy001122 的回复:

控件很漂亮,顶个,但是真心很迷茫Winform做出来东西性能是不是不怎么好?为什么我做个圆角矩形的窗体,不设置透明背景直接new Region()用刷子填充,弹出来的窗体先出白色的,后出内容,闪啊闪美化的热情都没了,求高手解惑!~~~为什么QQ啊,迅雷啊,之类的没先出一部分后又出一部分??

你可以看看我的代码,360和QQ都是圆角,我这个是用Win32函数切出来的

引用 3 楼 caozhy 的回复:

建议以后将积分设置为0分,方便别人下载。

也许你要说了,设置0分,别人下载我的资源,赚的积分少了怎么办?其实是这样的,csdn对每个资源的得分都是100分封顶,这意味着,你设置为5分,只有前20次下载你会得5分,之后的就不会了。而设置为0分,前100次下载,每次给你1分,之后也不会再给了。因此,你知道了,最终效果都是一样的。那么如何对你最有利呢?显然下载速度(单位时……

版主,申请加精推荐啊~~~

好资源。。果断收藏。。
感谢LZ分享
winform实现360、QQ窗体
引用 59 楼 Dream_TT 的回复:

感谢LZ分享

客气了,下次有空了整理整理再发有关滚动条的控件

引用 48 楼 tianyazaiheruan 的回复:

引用 2 楼 leafmao 的回复:要6分啊,虽然是挺值的,但是下载的分数真的好难获取
不是1分么

那是楼主为了照顾广大群众后来改成1分的

做得还是挺像的
做得挺漂亮的,学习一下~~
引用 62 楼 leafmao 的回复:

引用 48 楼 tianyazaiheruan 的回复:引用 2 楼 leafmao 的回复:要6分啊,虽然是挺值的,但是下载的分数真的好难获取
不是1分么

那是楼主为了照顾广大群众后来改成1分的

要我说弄成0分好了,0分也给1分的,咱们下载着也方便

引用 65 楼 tianyazaiheruan 的回复:

引用 62 楼 leafmao 的回复:引用 48 楼 tianyazaiheruan 的回复:引用 2 楼 leafmao 的回复:要6分啊,虽然是挺值的,但是下载的分数真的好难获取
不是1分么

那是楼主为了照顾广大群众后来改成1分的要我说弄成0分好了,0分也给1分的,咱们下载着也方便

0分的上传了,也上传成功了,页面当时提示我过会会显示,但直到现在都没有显示~~~~

引用 66 楼 fkuewfnh 的回复:

引用 65 楼 tianyazaiheruan 的回复:引用 62 楼 leafmao 的回复:引用 48 楼 tianyazaiheruan 的回复:引用 2 楼 leafmao 的回复:要6分啊,虽然是挺值的,但是下载的分数真的好难获取
不是1分么

那是楼主为了照顾广大群众后来改成1分的要我说弄成0分好了,0分也给1分的,咱们下载着也方便

0分的上传了,……

我表示很同情

谢谢,做的很漂亮,去下载下来学习!
不错的资源。。。

如果大家遇到什么问题可以直提出,例如有BUG,代码优化方面有啥建议。
今天在下载页面的评论里就看到一个比较脑残的回复:
strowbarry:
就只有一个QQ的登陆窗体,和360的窗体,没有具体功能。

都说了只是控件了,我真不知道这位兄弟还想要啥功能···
就算要功能麻烦您举例一二

嘿!广告贴,收藏下,有需要就下载
  感谢楼主造福社会~~
100分
BUG还是有的!无法禁用或隐藏最小化、最大化按钮!
最大化窗体,QQ窗体下半部分区域被覆盖了!360下边类似状态栏的区域被覆盖!
总体来说,写得还不错!

首先,很感谢你的回复    PS:终于有人肯给出宝贵的意见了。

以下是对你提出的问题回复:
1.对于禁用最小化、最大化按钮,我觉得禁用了肯定会影响美观,倒不如直接隐藏,隐藏最大化、是小化按针的功能是有的,可以通过Form的SysButton属生去设置。
2.说实话,这代码是大半年前写的,只有360的窗体是前段时间没事的时候写的,再经过一翻整理,到传上来的时候,为了拼出这个效果,整的有点随便,没有注意到,下边会被覆盖这个我也是今天没事的时候才看到,现在在此给出解决方案
首先,在FormBase里添加属性

protected virtual Padding DockPadding
        {
            get  { return new Padding(3, 26, 3, 3); }
        }

然后修改FormBase里override父类的OnSizeChanged()方法的第二行为:

base.Padding = this.DockPadding;

最后,在子类中重写FormBase的DockPadding属性即可,以下拿360的窗体为例:

protected override Padding DockPadding
        {
            get
            {
                return new Padding(3, 26, 3, 26);
            }
        }
引用 24 楼 fkuewfnh 的回复:

引用 23 楼 dylike 的回复:
其实楼主做的东西真的不错的,只是措辞上有些那个,用picutrebox贴图拼控件本身也没什么错,不同的人做法不同,不是所有的人都会去计算绘制,毕竟每个人都是从菜鸟开始,一路摸索成长,也许今天别人拼控件,明天就是纯代码绘制了也说不定。另外,中国的程序员是悲哀,不是他们个人的问题,则是国家体制的问题,国家对软件业支持力度极小,不足以推动大批高级程序人才的出现。……

恩确实如此,但是言词~太过嚣张了~

引用 74 楼 ComeBeer 的回复:

BUG还是有的!无法禁用或隐藏最小化、最大化按钮!
最大化窗体,QQ窗体下半部分区域被覆盖了!360下边类似状态栏的区域被覆盖!
总体来说,写得还不错!

很感谢你的回复,让我想到我写的这些控件我都没有去实现禁用,曾经我也想过,但因为QQ的界面主要是图片,那时候我用代码实现灰度处理,效果不是很好,后来想用PS地接整个灰度图,感觉也没有QQ的效果后,再后来就给忘记了,这些我记下来了,等下次我时间再整理整理代码后会去实现这些。

不错,学习一下
引用 77 楼 wjfwd2010 的回复:

引用 24 楼 fkuewfnh 的回复:引用 23 楼 dylike 的回复:
其实楼主做的东西真的不错的,只是措辞上有些那个,用picutrebox贴图拼控件本身也没什么错,不同的人做法不同,不是所有的人都会去计算绘制,毕竟每个人都是从菜鸟开始,一路摸索成长,也许今天别人拼控件,明天就是纯代码绘制了也说不定。另外,中国的程序员是悲哀,不是他们个人的问题,则是国家体制……

我这也嚣张?回复我的那些人比我更嚣张···发点资源出来供大伙学习学习,我容易吗?你要是我,你就不会这么想了

相当不错,赞一个
LZ,下了,但2005的不好开呀,这怎么办?
引用 82 楼 thtt125 的回复:

LZ,下了,但2005的不好开呀,这怎么办?

你用记事本打开.sln文件,
1.将第一行的Format Version 10.00改成Format Version 9.00
2.将第二行的#Visual Studio 2008改成#Visual Studio 2005
这样试试看行不行,反正我装的2008版本,经常打开05、10、12的解决方案都是这样打开的;但也不是万试万灵。

貌似缺少标题栏菜单按钮单击弹出菜单或新窗体的方法
引用 84 楼 ComeBeer 的回复:

貌似缺少标题栏菜单按钮单击弹出菜单或新窗体的方法

很感谢您的回复,这是我的疏忽。
以下是解决方案:
在_360Form.cs文件中重写的OnMouseDown方法中(大概是第348行的位置)

if (this.TitleBarMenuRect.Contains(e.Location) && e.Button == MouseButtons.Left)
            {
                this.TitleBarMenuState = EMouseState.Down;
                if (this.ContextMenuStrip != null)
                {
                    Point point = new Point(this.TitleBarMenuRect.X, this.TitleBarMenuRect.Y + this.TitleBarMenuRect.Height + 2);
                    this.ContextMenuStrip.Show(this, point);
                }
            }

这样就可以了,只要与主窗口关联相应的右键菜单控件就可以解决问题了;但这里需要注意一点就是我们这里Form的右键菜单属性是用的父类中的ContextMenuStrip,所以在窗体任何地方点击鼠标右键都会弹出右键菜单,如果使用以上方式就需要重写WndProc函数了,代码如下:

protected override void WndProc(ref Message m)
        {
            if (m.Msg != (int)WindowsMessage.WM_CONTEXTMENU)//0x007B鼠标右键
            {
                base.WndProc(ref m);
            }
        }

当然,你也可以自己定义一个ContextMenuStrip的属性,去单独关联标题栏上的菜单按钮,个人感觉这样会更好点,但是具体的话还是看需求了,如果没有必要在窗体上点击右键弹出菜单的话就完全没有必要去添加这个属性了,这样只会让你Form里的成员更多,但如果有这个需求,那这种方式就再合适不过了。
以上是弹出菜单的解决方案,但如果是单击打开新的窗口的话,看你需求了,360在这方面是使用鼠标按下时弹出菜单,所以我就在OnMouseDown里添加相应的解决方式,如果你想在Click单击的时候弹出窗口就需要在OnMouseUp中添加自定义的事件(因为Click是在鼠标左键抬起的时候并且鼠标必须还在按钮的区域中才会激发),方式与上面的相同。

引用 84 楼 ComeBeer 的回复:

貌似缺少标题栏菜单按钮单击弹出菜单或新窗体的方法

不好意思,又忘了说明一点,就是在OnMouseUp中添加一个判断,和上面判断的方式一样,只是添加一个

&& e.Button == MouseButtons.Left;

,由于这个360的窗体是近期写的,效果出来了然后就传上来了,或多或少会有些BUG,相对于来说QQ的窗体是大半年前写的,所以基本上是没有问题的;很感谢您的回复。

6分不算高了。有的还要10分,比如http://download.csdn.net/detail/caozhy/4401532
是个好东西,我下载了,挺值的
目前我还在用楼主说的图片,悲哀啊~
大牛精神···力挺···
引用 89 楼 scmyyt 的回复:

目前我还在用楼主说的图片,悲哀啊~

慢慢来,大部分人都是从那个时候过来的。

建议对标题栏菜单按钮做隐藏属性或在SysButton中增加一个选项,这样可以设定SHOW()出来的对话框只有关闭按钮!
引用 92 楼 ComeBeer 的回复:

建议对标题栏菜单按钮做隐藏属性或在SysButton中增加一个选项,这样可以设定SHOW()出来的对话框只有关闭按钮!

看来你是唯一一个用心看了我代码的人,嗯,你的建议我会采用,下次传时候就有了,尽请期待~

不错  谢谢分享 。。。。。
学习了,谢谢楼主
引用 93 楼 fkuewfnh 的回复:

引用 92 楼 ComeBeer 的回复:建议对标题栏菜单按钮做隐藏属性或在SysButton中增加一个选项,这样可以设定SHOW()出来的对话框只有关闭按钮!

看来你是唯一一个用心看了我代码的人,嗯,你的建议我会采用,下次传时候就有了,尽请期待~

相互学习,取长补短嘛!

引用 2 楼 leafmao 的回复:

要6分啊,虽然是挺值的,但是下载的分数真的好难获取

评论下资源,打个分,下载分就回来咯~~

为什么2010下不能运行呢
感觉不错,向楼主致敬!
现在可以运行了
很强大
引用 97 楼 laq616853363 的回复:

引用 2 楼 leafmao 的回复:要6分啊,虽然是挺值的,但是下载的分数真的好难获取

评论下资源,打个分,下载分就回来咯~~

我也是这样想的

为什么我点击下载显示 javascript:void(0)?
很棒,值得顶下
引用 105 楼 flashrhx2010 的回复:

很棒,值得顶下

谢谢捧场

好东西。学习了
不错的东西,很有参考价值
真的狠不错,学习了
谢谢分享~~
太好了。顶两下
我做了类似个,也是手绘啊手绘,还好控件窗体都封装成dll直接用
参考:
http://www.cnblogs.com/along729/
http://www.csharpwin.com/csharpresource/12806r6708.shtml  反编译后看代码,混淆的,耐心看
http://www.cnblogs.com/sufei/archive/2010/06/18/1760370.html 
我去,真的是很好的学习资源,顶楼主
http://www.okbase.net/file/item/21626
这个也是楼主的专栏?
这个效果太棒了
撸主,头部拖动区域不能双击切换最大化。界面没有阴影,望改进。
楼主太厉害了,能不能写哈,数据展示的控件,就是软件下载的列表。之前做是asp.net现在要我做个winform的桌面程序,这个数据控制,用的太不顺手了。
不求强大,美观、大方、实用,接了,赞一个
好东西,不解释。。。。。
谢谢分享,我是新手,虽然大部分看不懂…但我会认真看的
不要分,楼主好人啊
看看楼主的好东西
跟牛人学习一下
此贴必火《顶贴
来学习metro风格。。感谢楼主提供资料。。
不是挖坟,确实感谢楼主,刚刚需要一个界面,我界面做得很不好看。
新手刚学习winform 值得学习 好东西 谢谢楼主分享
不错的事例

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明利用winform实现漂亮窗体(QQ、360)【带源码】
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!