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

       

导读部分
-------------------------------------------------------------------------------------------------------------
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(723496);
            
// 
            
// 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(723496);
            
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(95137);
            
// 
            
// pnlBackGroup
            
// 
            this.pnlBackGroup.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pnlBackGroup.BackgroundImage")));
            
this.pnlBackGroup.Location = new System.Drawing.Point(231);
            
this.pnlBackGroup.Size = new System.Drawing.Size(967430);
            
// 
            
// EntryForm
            
// 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
            
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            
this.ClientSize = new System.Drawing.Size(971498);
            
this.Controls.Add(this.pnlBackGroup);
            
this.Location = new System.Drawing.Point(400300);
            
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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

助教小结13

本周总结&#xff1a; 主要为完成团队任务五的批改 整体完成的还可以 第1组、第9组&#xff1a;未点击提交按钮总成绩打八折 优秀作业&#xff1a; 第5组&#xff1a;https://www.cnblogs.com/lishuya/p/11088462.html 千帆竟发图&#xff1a; 转载于:https://www.cnblogs.com/…

java工作台无法显示_【Eclipse】使用指南(18)搜索工作台

Searching the workbench搜索工作台In this section, you will search the workbench for Java elements.本小节&#xff0c;你将在工作台中搜索Java元素。In the Search dialog, you can perform file, text or Java searches. Java searches operate on the structure of the…

Gridview 鼠标悬浮光棒效果

代码 1 protectedvoidGridView1_RowDataBound(objectsender, GridViewRowEventArgs e)2 {3 4 //如果是绑定数据行 5 6 if(e.Row.RowType DataControlRowType.DataRow)7 {8 9 //鼠标经过时&#xff0c;行背景色变 10 e.Row.Attributes.Add("onmouseover",11 "cu…

神策埋点

首先进入后台管理点击生成导入代码&#xff1a; 选好选项后点生成&#xff1a; 以下是生成的代码&#xff1a; (function(para) {var p para.sdk_url, n para.name, w window, d document, s script,x null,y null;if(typeof(w[sensorsDataAnalytic201505]) ! undefined…

java 抽象类语法_JAVA基础语法8--多态/抽象类/抽象方法

多态继承、封装、多态、抽象是面向对象编程的四大基本特征。封装隐藏了类的内部实现机制&#xff0c;从而可以在不影响使用者的前提条件下&#xff0c;改变类的内部结构&#xff0c;同时保护了数据。继承是为了重用父类代码&#xff0c;同时为多态做准备。那么&#xff0c;什么…

(搬家文) c++引用深入探讨

(偶然翻起自己的旧博,忽然发现大三的时候写的这篇文章,仔细看看觉得写的还是那么回事,所以赶紧搭救出来) 引用的声明: 基本格式&#xff1a;引用类型 &引用名被引用对象 &运算符&#xff1a;声明运算符& 跟取地址运算符&和位异或运算符&没有任何关系ext…

参数作用域实践

auto参数&#xff0c;申明时可以忽略auto void fun(){int p 1;cout<<"p:"<<p<<endl;for(int i0;i<5;i){int p 10;cout<<"p:"<<p<<endl;}// 此处输出的还是外围作用域定义的p值1cout<<"p:"<<…

phpstudy2018修改php版本,phpstudy的php版本自由修改的方法

作为PHP开发的常用工具&#xff0c;phpstudy具有许多强大的功能&#xff0c;它可以连接到MySQL并检查服务器状态&#xff0c;感兴趣的话就随爱站技术频道小编一起来了解phpstudy的php版本自由修改的方法吧&#xff01;网上有着许多的网站集成搭建软件&#xff0c;比较出名的就有…

API网关从入门到放弃

前言 假设你正在开发一个电商网站&#xff0c;那么这里会涉及到很多后端的微服务&#xff0c;比如会员、商品、推荐服务等等。 那么这里就会遇到一个问题&#xff0c;APP/Browser怎么去访问这些后端的服务? 如果业务比较简单的话&#xff0c;可以给每个业务都分配一个独立的域…

BarTender操作遇到OLE DB遇到了错误0x80004005”的问题

在使用BarTender打印条码时操作遇到"OLE DB遇到了错误0x80004005”的问题 在打印时关掉数据库所连接的Excel文件即可转载于:https://www.cnblogs.com/edrp/archive/2010/07/18/1780122.html

震惊!垃圾分类居然能用Python搞定!

目录 0 引言 1 环境 2 需求分析 3 代码实现 4 后记 0 引言 纸巾再湿也是干垃圾&#xff1f;瓜子皮再干也是湿垃圾&#xff1f;&#xff1f;最近大家都被垃圾分类折磨的不行&#xff0c;傻傻的你是否拎得清&#xff1f;???自2019.07.01开始&#xff0c;上海已率先实施垃圾分类…

免费试用 Mobile Me

曾经尝试着注册过Mobile me&#xff0c;发现居然试用也要提供信用卡&#xff0c;而且地区选项里根本就没有中国&#xff0c;故愤然弃之。 今天忽然想再尝试一把&#xff0c;毕竟把mac、iphone&#xff0c;和即将到来的ipad连在一起是挺有意思的事情。 打开http://www.apple.com…

Postman: Test

Tests 参考&#xff1a;Writing Tests Testing examples 这里写测试用例&#xff0c;进行一些判断等等。即处理断言 下面新建了两个测试用例&#xff0c;名字分别是”Status code is 200“ 、”Status code name has string“。 “responseCode.code 200” 返回 True 或者 Fal…

比IETEST更好用的浏览器兼容性测试软件[绿色]

Xenocode Browser Sandbox 改变了基于 Windows 的浏览器兼容测试工具的游戏规则&#xff0c;只需点一下鼠标&#xff0c;就会直接打开一堆各式各样的浏览器窗口&#xff0c;你可以在不同版本的 IE, Firefox, Google Chrome, Safari 进行测试。是真正的测试&#xff0c;不是屏幕…

【期外】 (一)关于LSH :局部敏感哈希算法

LSH是我同学的名字&#xff0c;平时我会亲切的称呼他为离骚&#xff0c;老师好&#xff0c;左移&#xff08;leftshift&#xff09;&#xff0c;小骚骚之类的&#xff0c;最近他又多了一个新的外号&#xff1a;局部敏感哈希&#xff08;Locally sensitive hashing)。 好了&…

mysql n 存储结构,MySQL体系结构和存储引擎概述

一、定义数据库和实例数据库&#xff1a;物理操作系统文件或其他形式文件类型的集合。数据库文件可以是frm、MYD、ibd 结尾的文件。从概念上来说&#xff0c;数据库是文件的集合&#xff0c;是依照某种数据模型组织起来并存放于二级存储器的数据集合&#xff1b;实例&#xff1…

Microsoft Expression Studio 4 Ultimate 中文版发布

Expression Studio Ultimate 是供生成网站以及 Windows 客户端应用程序和丰富媒体内容的专业设计人员使用的一系列工具&#xff0c;可以将创作人员引领到一个全新的创作天地。无论您是准备设计基于标准的网站&#xff0c;还是设计内容精美&#xff0c;令人赏心悦目的桌面或者 S…