导读部分
-------------------------------------------------------------------------------------------------------------
C#仿QQ皮肤-实现原理系列文章导航 最新版源码下载

http://www.cckan.net/thread-2-1-1.html

   本次是我们窗体实现的最后一节,在这里首先感谢大家的支持,今天所说一个用户控件EnterFrom1和窗体EntryForm其实是分别继承自  基窗体FormBase与基用户控件FormBase1 而来的,而其中EnterFrom1是继承的用户控件EnterUserControl  这个控件而来,而EnterUserControl   又是继承的Formbase1而得来的,具体关于这个控件和窗体的实现请大家参考 相关的章节,而我们今天 要实现的两个小东东,其实是最简单, 因为在CS类里只要一行代码就OK了

实现的效果如下

       

  EnterFrom1

public partial class EnterFrom1 : EnterUserControl 
    {
        public EnterFrom1()
        {
            InitializeComponent();
        }
    }

关键的代码就是第一行,继承一下EnterUserControl 
这个用户控件就行了,而在InitializeComponent()方法中简单的数行代码就可以完全搞定了

代码

/// <summary> 
        /// 设计器支持所需的方法 - 不要
        /// 使用代码编辑器修改此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EnterFrom1));
            this.SuspendLayout();
            // 
            // pnlBackGroup
            // 
            this.pnlBackGroup.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pnlBackGroup.BackgroundImage")));
            this.pnlBackGroup.Size = new System.Drawing.Size(723, 496);
            // 
            // EnterFrom1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.Controls.Add(this.pnlBackGroup);
            this.Name = "EnterFrom1";
            this.Size = new System.Drawing.Size(723, 496);
            this.Controls.SetChildIndex(this.pnlBackGroup, 0);
            this.ResumeLayout(false);

}

再来看一下EntryForm的实现 吧,CS类

 public partial class EntryForm : FunctionFormBase    
    {
        public EntryForm()
        {
            InitializeComponent();
        }
    }

它的InitializeComponent()方法代码如下

代码

/// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EntryForm));
            this.SuspendLayout();
            // 
            // ptbBottomMiddle
            // 
            this.ptbBottomMiddle.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ptbBottomMiddle.BackgroundImage")));
            this.ptbBottomMiddle.Size = new System.Drawing.Size(951, 37);
            // 
            // pnlBackGroup
            // 
            this.pnlBackGroup.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pnlBackGroup.BackgroundImage")));
            this.pnlBackGroup.Location = new System.Drawing.Point(2, 31);
            this.pnlBackGroup.Size = new System.Drawing.Size(967, 430);
            // 
            // EntryForm
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(971, 498);
            this.Controls.Add(this.pnlBackGroup);
            this.Location = new System.Drawing.Point(400, 300);
            this.Name = "EntryForm";
            this.Text = "EntryForm";
            this.Controls.SetChildIndex(this.pnlBackGroup, 0);
            this.ResumeLayout(false);

}

其实说白了这两个东西是一个实现原理不同只是一个是窗体,一个是用户控件 而已,其它的差不是很大,相信以后他们两个是用的最多的窗体和用户控件 ,只要大家使用一定会慢慢的深入了解它们的。

  我们实现原理这一块的就到这里了,下次就要到我们的框架的搭建了,呵呵,在这一块才是皮肤的核心东西,讲的是怎么样实现颜色,就是皮肤的转换,和使用,他们是用什么样的方式来实现 的,在写的过程中我会一节一节的分析一下是怎么样实现的,我们都用到了那些GDI+方面的东西,用到了那些方面的Windows消息,和颜色和坐标的一些算法等等。

 

转载于:https://www.cnblogs.com/sufei/archive/2010/06/22/1762513.html

C#仿QQ皮肤-常用用户控件EnterFrom1和窗体EntryForm的实现相关推荐

  1. C#仿QQ皮肤-ContextMenuStrip 控件实现

    原文:http://www.sufeinet.com/thread-2083-1-1.html 导读部分 ----------------------------------------------- ...

  2. C#仿QQ皮肤-TextBox 控件实现

    C#仿QQ皮肤-实现原理系列文章导航                                                               http://www.cnblogs. ...

  3. C#仿QQ皮肤-TabControl控件实现

    导读部分 ----------------------------------------------------------------------------------------------- ...

  4. 2017-5-5 QQ面板 (用户控件、timer控件,轮询实现聊天功能)

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  5. Android自定义View,高仿QQ音乐歌词滚动控件!

    最近在以QQ音乐为样板做一个手机音乐播放器,源码下篇博文放出.今天我想聊的是这个QQ音乐播放器中歌词显示控件的问题,和小伙伴们一起来探讨怎么实现这个歌词滚动的效果.OK,废话不多说,先来看看效果图: ...

  6. C#仿QQ皮肤-总体层次说明(一)

    阅读全文:http://www.cckan.net/forum.php?mod=viewthread&tid=258 C#仿QQ皮肤-实现原理系列文章导航                    ...

  7. C#仿QQ皮肤-实现原理系列文章导航

    请稳步我的博客查阅并下载所有资源以及源代码 http://www.cckan.net                                          写作说明 有不少朋友建议我写一下 ...

  8. C#仿QQ皮肤_写作说明

    写作说明 有不少朋友建议我写一下原理,其实我也很想写一下不过一直没有时间,正好今天有时间来个开题吧!!!  有句名言说的好,用心做事但不埋头,积跬步而至千里.性格决定命运,专注成就人生,细节决定成败. ...

  9. 开发和使用Web用户控件

    在 ASP.NET 的开发中 Web 用户控件的开发和使用是一项必不可少的技术,在对这项技术的一番研究后写下了这篇随笔,不过确实担心这么初级的东东放到原创首页上会被拍砖头. 1.简介 2.创建 Web ...

最新文章

  1. WCF - Session 剖析
  2. 妹子调车为哪般?室外赛道来闯关。
  3. matlab神经网络 时间序列,请问吧里有大神做过MATLAB时间序列神经网络(NARX)吗?...
  4. Ace-editor 输入内容时光标闪动,定位错乱的解决方案
  5. 一些常用正则表达式片段的分析
  6. poj-2955-Brackets-区间DP
  7. python坐标系建立_在python中创建坐标网格
  8. mysql_connect和mysql_pconnect区别
  9. python3 windows console 输出乱码问题
  10. 数据结构和算法详解(四)——五大基本算法思想
  11. 1.1HashMap
  12. 反思 大班 快乐的机器人_幼儿园大班体育课教案《小熊斗怪兽》含反思
  13. Java教学视频全集,活见久
  14. 安卓微信分享图标不显示的问题
  15. 人生,有时需要不知足!
  16. android控件显示在最上层,「总是可见的时钟和备忘录」永远显示在屏幕最上层的贴心助手(Android)...
  17. Android息屏与亮屏
  18. Java中HashMap底层实现原理
  19. E. By Elevator or Stairs?
  20. GLES2.0中文API-glBlendFunc

热门文章

  1. c# nat udp转发
  2. 密码中不能包含全角字符的正则表达式
  3. 02 List、Tuple、Dict、Set
  4. React-Router 源码分析1
  5. 本地模式运行spark streaming程序(win7安装nc命令通信)
  6. $(function() {})
  7. ORACLE 10.2.01升级10.2.05 for windows 详细文档
  8. linux   图片
  9. Sqli-labs less 64
  10. Linux运维系统工程师系列---04