当前位置:编程学习 > C#/ASP.NET >>

「控件控」一步一步玩控件:自定义TabControl——从山寨Apple Safari开始

--------------------编程问答-------------------- 曾经有人问道:怎么实现360那样的界面,就是这样实现。

--------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- ...

LZ 有点意思 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 管理是窗体里的内容怎么换呢,期待LZ的给力。。。 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 360那个界面是用DirectUI做的 --------------------编程问答-------------------- 对楼主的细心和耐心,在下实在是Orz啊! --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答--------------------
引用 12 楼  的回复:
360那个界面是用DirectUI做的


山寨的精神就是能用免费的就用免费的,能不用专业的,就不用专业的 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 楼主的文笔和编程一样牛! --------------------编程问答-------------------- 我当初做的时候是用panel做Tab。
panel里放个TableLayoutPanel,再在TableLayoutPanel里放Lable,在lable的鼠标事件里改变各种状态。

        private void L_Change(object sender)
        {
            (sender as Label).Image = MC.Properties.Resources.btnU;
        }
        private void L_Changed(object sender)
        {
            (sender as Label).Image = MC.Properties.Resources.btnD;
        }
        private void L_Changing(object sender)
        {
            (sender as Label).Image = MC.Properties.Resources.btnH;
        }
        private void L_MouseDown(object sender, MouseEventArgs e)
        {
            L_Change(sender);
        }
        private void L_MouseLeave(object sender, EventArgs e)
        {
            L_Changed(sender);
        }
        private void L_MouseUp(object sender, MouseEventArgs e)
        {
            L_Changed(sender);
        }
        private void L_MouseHover(object sender, EventArgs e)
        {
            L_Changing(sender);
        }

容器依然是TabControl,不过Tab被我用panel给遮挡住了。lable的单击事件就是切换Tab --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 诶,这几天看野比的东西,挺好玩的啊. --------------------编程问答-------------------- 此野比和BCCN上的野比不知道是不是同一个人。怎么感觉连说话风格都多这么像!呼呼! --------------------编程问答-------------------- --------------------编程问答-------------------- 非常好~~感谢楼主~~正想研究一下tabcontrol --------------------编程问答--------------------
引用 12 楼  的回复:
360那个界面是用DirectUI做的

360很垃圾。并非完全的driectui.不如qq. --------------------编程问答-------------------- --------------------编程问答--------------------
引用 22 楼  的回复:
我当初做的时候是用panel做Tab。
panel里放个TableLayoutPanel,再在TableLayoutPanel里放Lable,在lable的鼠标事件里改变各种状态。
C# code

        private void L_Change(object sender)
        {
            (sender as Label).Image = MC.……


自己实现最方便的是用RadioButton,可以互斥切换。。 --------------------编程问答--------------------
引用 27 楼  的回复:
此野比和BCCN上的野比不知道是不是同一个人。怎么感觉连说话风格都多这么像!呼呼!


宾果   --------------------编程问答-------------------- --------------------编程问答-------------------- 怎么改TabControl 的背景色??? --------------------编程问答-------------------- 学习学习... --------------------编程问答-------------------- 这个非常值得借鉴学习,你太洋气了。 --------------------编程问答-------------------- 野比,玩得很不错,路过支持一下。 --------------------编程问答-------------------- 啊哦 过来学习下 很专业哦 --------------------编程问答-------------------- 野比不错哦~
--------------------编程问答--------------------
引用 35 楼  的回复:
怎么改TabControl 的背景色???


就我这个例子来说

面板:直接改TabConrol.BackColor

标签:在OnPaint()里e.Graphics.Clear(Color) --------------------编程问答-------------------- 楼主牛人! --------------------编程问答--------------------
引用 30 楼  的回复:
引用 12 楼  的回复:

360那个界面是用DirectUI做的

360很垃圾。并非完全的driectui.不如qq.


我靠。又是你,怎么到处都看见你在吐槽! --------------------编程问答-------------------- 支持楼主,学到了不少~ --------------------编程问答-------------------- C#不是有很好的第三方控件吗?我看那个东西做的也很绚,不过有些大。 --------------------编程问答-------------------- 关注一下自定义控件的知识 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 45 楼  的回复:
C#不是有很好的第三方控件吗?我看那个东西做的也很绚,不过有些大。


那些东西,对我来说贵得简直令人发指 --------------------编程问答--------------------
引用 48 楼  的回复:
引用 45 楼 的回复:

C#不是有很好的第三方控件吗?我看那个东西做的也很绚,不过有些大。


那些东西,对我来说贵得简直令人发指

在中国嘛,都是用破解 --------------------编程问答--------------------
引用 48 楼  的回复:
引用 45 楼  的回复:

C#不是有很好的第三方控件吗?我看那个东西做的也很绚,不过有些大。


那些东西,对我来说贵得简直令人发指

可以共享下源代码吗!
--------------------编程问答--------------------
引用 49 楼  的回复:
引用 48 楼  的回复:
引用 45 楼 的回复:

C#不是有很好的第三方控件吗?我看那个东西做的也很绚,不过有些大。


那些东西,对我来说贵得简直令人发指

在中国嘛,都是用破解


我手里很多,但很少用,尤其是大型的,用了就被套死了 --------------------编程问答--------------------
引用 51 楼  的回复:
引用 49 楼  的回复:

引用 48 楼  的回复:
引用 45 楼 的回复:

C#不是有很好的第三方控件吗?我看那个东西做的也很绚,不过有些大。


那些东西,对我来说贵得简直令人发指

在中国嘛,都是用破解


我手里很多,但很少用,尤其是大型的,用了就被套死了

可以共享源代码吗? --------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- 收藏了 --------------------编程问答--------------------
引用 51 楼  的回复:
引用 49 楼  的回复:

引用 48 楼  的回复:
引用 45 楼 的回复:

C#不是有很好的第三方控件吗?我看那个东西做的也很绚,不过有些大。


那些东西,对我来说贵得简直令人发指

在中国嘛,都是用破解


我手里很多,但很少用,尤其是大型的,用了就被套死了


什么叫用了就被套死了? --------------------编程问答-------------------- 学习了,受益匪浅,谢谢楼主! --------------------编程问答-------------------- 过来支持一下,你的前几个例子我自己都手动敲了一遍,不错,继续学习,

另外,别盗用我的头像 --------------------编程问答--------------------
引用 57 楼  的回复:
过来支持一下,你的前几个例子我自己都手动敲了一遍,不错,继续学习,

另外,别盗用我的头像



你那手办照片太山寨,看不出来。。 --------------------编程问答-------------------- 好东西 --------------------编程问答-------------------- 不错,支持。。。。 --------------------编程问答-------------------- 感谢楼主 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 嗯嗯~~好不错诶~~楼主高人~~~ --------------------编程问答-------------------- 这么细致,赞 --------------------编程问答-------------------- 学习了,不过刚接触,看得糊里糊涂的,楼主能否共享完整的代码? --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- Apple牛呀 --------------------编程问答-------------------- --------------------编程问答-------------------- 很佩服楼主的精神!下一次可否山寨一款Google浏览器的选项卡标签呢?期待啊…… --------------------编程问答-------------------- TableControl有点“沉重”了。自己控制一些图片容器控件的事件就行了。其实“闷骚”的重点不仅仅在像素(“阴影、高光”之类的),而且在于处处都有动画效果。而要流畅地使用大量动画,需要熟练地、大量地使用多线程技术。 --------------------编程问答-------------------- 我想楼主没有注意到山寨人家的多线程并发性。那样,你的山寨之路走不了多远的。 --------------------编程问答-------------------- 哈哈,楼主很有耐性啊。也属于“闷骚”的类型哦。 --------------------编程问答--------------------
忘记想说什么了,,

野比厉害,野比威武。。。 good job!! --------------------编程问答--------------------
引用 73 楼  的回复:
我想楼主没有注意到山寨人家的多线程并发性。那样,你的山寨之路走不了多远的。



其实这篇文章我在博客上继续更新着。

「除了动不动就多线程这种有点大炮打蚊子太2的方法外,我们还可以用系统自带的Timer。在每个Timer.Tick事件里挪一步,合起来就成了动画。」

什么叫「山寨」?谁都知道它处处多线程,难道正品怎样你还跟着做呢?那山寨个p啊,山寨就是避重就轻,怎么来的简单来的容易怎么做。

真正的山寨,就是你虽然根本不会正版的技术,或者就算会也不用,只用成本最低的做法实现,只需要「看起来一样」。 --------------------编程问答--------------------
引用 72 楼  的回复:
TableControl有点“沉重”了。自己控制一些图片容器控件的事件就行了。其实“闷骚”的重点不仅仅在像素(“阴影、高光”之类的),而且在于处处都有动画效果。而要流畅地使用大量动画,需要熟练地、大量地使用多线程技术。


受教了。

但我还是想说,文章有点长,不要看了后面忘了前面。我说它闷骚就是说的窗体动画。高光文字我根本不觉得啥。 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 文笔不错,又一才子啊 --------------------编程问答-------------------- 太山寨了。。支持喽。 --------------------编程问答-------------------- 这么细致,赞 --------------------编程问答-------------------- 不错!学习了! --------------------编程问答-------------------- 真不错!控件就得自定义 先顶标记下 --------------------编程问答-------------------- 谢谢分享 --------------------编程问答-------------------- 看过野比的几个帖子,很有才,文采也好,支持一下! --------------------编程问答-------------------- 佩服lz的耐心与深度啊 --------------------编程问答-------------------- 马克一个,等更新 --------------------编程问答-------------------- 看得出来楼主也很闷骚,继续努力啊,等更新! --------------------编程问答-------------------- 吼吼,我只看到这句话
真正的山寨,就是你虽然根本不会正版的技术,或者就算会也不用,只用成本最低的做法实现,只需要「看起来一样」
是滴,我也是这么想滴,哼哼! --------------------编程问答-------------------- LZ 有点意思 --------------------编程问答-------------------- 好文章,跟帖留名! --------------------编程问答-------------------- 顶 牛X 支持 --------------------编程问答-------------------- 牛人。。。学习了。   --------------------编程问答-------------------- 精辟,值得学习。 --------------------编程问答-------------------- lz的名字是什么意思。 --------------------编程问答-------------------- BCCN --------------------编程问答-------------------- 持续跟踪关注 --------------------编程问答-------------------- 不错,持续跟踪关注 
--------------------编程问答-------------------- 看不懂!求源代码!!!!!315253356@qq.com目前正在学习中···
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,