用户控件和自定义控件的定义的区别

合集下载

.NET4.0 用户控件的概述

.NET4.0  用户控件的概述

4.0 用户控件的概述用户控件是页面的一段,包含了静态HTML代码和服务器控件。

其优点在于一旦创建了一个用户控件,可以在同一个应用的多个页面中重用。

并且,用户可以在Web用户控件中,添加该控件的属性、事件和方法。

1.什么是用户控件用户控件(后缀名为.ascx)文件与网页窗体(后缀名为.aspx)文件相似。

就像网页窗体一样,用户控件由用户接口部分和控制标记组成,而且可以使用嵌入脚本或者.cs代码后置文件。

用户控件能够包含网页所能包含的任何东西,包括静态HTML内容和控件,它们也作为页面对象(Page Object)接收同样的事件(如Load和PreRender),也能够通过属性(如Application,Session,Request 和Response)来展示内建对象。

用户控件使程序员能够很容易地跨Web应用程序划分和重复使用公共UI功能。

与窗体页相同,用户可以使用任何文本编辑器创作用户控件,或者使用代码隐藏类开发用户控件。

此外,用户控件可以在第一次请求时被编译并存储在服务器内存中,从而缩短以后请求的响应时间。

与服务器端包含文件(SSI)相比,用户控件通过访问由提供的对象模型支持,使程序员具有更大的灵活性。

程序员可以对在控件中声明的任何属性进行编程,而不只是包含其他文件提供的功能,这与其他任何服务器控件一样。

此外,可以独立于包含用户控件的窗体页中除该控件以外的部分来缓存该控件的输出。

这一技术称作片段缓存,适当地使用该技术能够提高站点的性能。

例如,如果用户控件包含提出数据库请求的服务器控件,但该页的其余部分只包含文本和在服务器上运行的简单代码,则程序员可以对用户控件执行片段缓存,以改进应用程序的性能。

用户控件与普通网页页面的区别是:●用户控件开始于控件指令而不是页面指令。

●用户控件的文件后缀是.ascx,而不是.aspx。

它的后置代码文件继承于erControl类.事实上,UserControl类和Page类都继承于同一个TemplateControl类,所有它们能够共享很多相同的方法和事件。

.NET4.0 定义控件

.NET4.0  定义控件

4.0 定义控件自定义控件与用户控件不同,自定义控件需要定义一个直接或间接从Control 类派生的类,并重写Render方法。

在.NET框架中,System.Web.UI.Control与System.Web.UI.WebControls.WebControl两个类是服务器控件的基类,并且定义了所有服务器控件共有的属性、方法和事件,其中最为重要的就是包括了控制控件执行生命周期的方法和事件,以及ID等共有属性。

1.创建项目使用自定义Label控件的代码,Web Control Library模板中默认包括该控件。

该控件是从Web Control类派生的,其行为与标准的Label控件相同,同时具有添加的属性将Text属性的值呈现为超级链接。

例如,在【文件】菜单中,执行【新建项目】命令,并弹出【新建项目】对话框,如图8-8所示。

在【模板】窗格中,选择Web选项,并在右侧选择【服务器控件】选项。

然后,将【名称】更改为Control,并单击【确定】按钮。

图8-8 自定义控件2.添加类控件在【解决方案资源管理器】中,右击项目文件,并执行【添加】|【新建项】命令,如图8-9所示。

图8-9 添加新项在弹出的【添加新项-Control】窗口中,选择【Visual C#项】模板,并选择【类】选项。

然后,修改【名称】为Address.cs,并单击【添加】按钮,如图8-10所示。

图8-10 添加类文件此时,在Address.cs文件中,添加一些地址的属性内容。

例如,城市名称、邮政编码、国籍等等。

现代码内容。

代码编写完成后,可以编译控件。

其实,编译控件的方法非常简单,如分别选择Address.cs和Custom.cs文件,并执行【生成】|【生成Control】命令,如图8-11所示。

图8-11 生成Control类3.将控件添加到工具箱生成Control类之后,可以将该类文件添加到工具箱中。

这样用户可以像使用工具栏中的控件一样,直接引用到窗体页中。

ASPNET网络程序设计教程第9章 用户控件与自定义控件

ASPNET网络程序设计教程第9章  用户控件与自定义控件

9.3.2 访问用户控件中的服务器控件
程序开发人员可以在用户控件中添加各种控件,例如,Label 控件、 TextBox 控件等,但当用户控件创建完成后,将其添加到 网页中,在网页的后台代码中,不能直接访问用户控件中的服务 控件的属性。为了实现对用户控件中的服务器控件的访问,必须 在用户控件中定义公有属性,并且利用 GET访问器与 SET访问器 来读取和设置控件的属性。 public string str_Name //公有属性,访问“用户姓名”文本框 { get { return this.TextBox1.Text; } //返回“用户姓名”文本框的 值 set { this.TextBox1.Text = value; } //设置“用户姓名”文本框的 值 }
9.1.2 用户控件与自定义控件的比较
( 1 )自定义控件采用大多数应用程序可以使用的 动态链接库文件( .DLL ),为创建可再分发的组 件而设计。用户控件是为单个应用程序而设计的, 用户控件必须以源代码形式存在(.ascx文件)。 ( 2 )自定义控件适用通过在编程方式生成的布局 中表现动态内容,用户控件的布局在.ascx文件创建 时声明,适用于固定布局的相对静态的内容。 ( 3 )自定义控件提供很大程度的设计期支持功能, 如可以支持设计时的属性、方法;用户控件只有很 少的设计期支持,它并不在属性窗口中显示属性和 事件,也不能将其放到工具箱中。
第9章 用户控件与自定义控件
本章主要内容
用户控件和自定义控件概述 创建及使用用户控件 设置用户控件 用户控件编程
9.1 用户控件和自定义控件概述
用户控件( User Control)是一种自定义的组 合控件,通常由系统提供的可视化控件组合而成。 在用户控件中不仅可以定义显示界面,还可以编写 事件处理代码。当多个网页中包括有部分相同的用 户界面时,可以将这些相同的部分提取出来,做成 用户控件。 Web 用户控件与完整的 网页 (即.aspx文件)非常相似,同时具有自己的用户界 面页和代码。

8.1网页中的控件类型

8.1网页中的控件类型

第 8 章 网页标准控件控件是一种类,绝大多数控件都具有可视的界面,能够在程序运行中显示出其外观。

利 用控件进行可视化设计既直观又方便,可以实现“所见即所得”(What You See Is What You Get, 简称为 WYSIWYG)的效果。

程序设计的主要内容是选择和设置控件以及对控件的事件 编写处理代码。

本章将介绍网页中最常用的几个标准网页控件。

目的在于学会这些常用控件的使用方 法。

其他控件在后续的章节中介绍。

8.1 网页中的控件类型 的类库中包括大量的控件,根据功能可以将它们分成以下几种类型。

标准控件:这些控件属于服务器控件。

除窗体页中常用的按钮、文本框等控件以外,还 有一些特殊用途的控件,例如,显示日历的控件等。

网页标准控件与 HTML 元素标记之间 不存在一对一的对应关系。

验证控件:用于检验用户的输入。

例如,验证是否缺少必须填入的字段;输入的数据格 式是否符合要求;输入的数据是否在指定的范围内等。

用户控件及自定义控件: 这些控件都是由程序设计者自行定义的控件, 是对系统控件的 扩展。

用户控件可以在项目内不同网页中重复使用,从而提高了程序设计的效率,同时还能 使各网页的显示风格一致。

HTML 控件:默认情况下它属于客户端(浏览器端)控件,但也可以将其转换成服务器端 控件。

每个控件对应于一个 HTML 元素的标记。

数据源控件 这类控件可以针对各种数据源实现数据绑定功能, 这包括微软的 SQL Server 和 Access, 以及其他关系型数据库、XML 文件和代码中实现的类。

数据视图控件 这类控件呈现为各种列表和表格,它们可以绑定到数据源以显示和编辑数据。

个性化控件 这类控件允许用户个性化地展示自己的站点, 包括重新调整网页本身等。

用户信息会被 自动地、透明地保存,并从一个会话持续到下一个会话。

登录控件和安全控件 这类控件实现站点中的普通登录功能,并维护用户的密码。

第7章 用户控件和自定义控件

第7章  用户控件和自定义控件

(3)将@ Page指令更改为@ Control指令。
(4)移除@ Control指令中除Language、AutoEventWireup(如果 存在)、CodeFile 和 Inherits之外的所有特性。
u
(5)在@ Control指令中包含className特性。这允许将用户控件
添加到页面时对其进行强类型化。
7.2.2 复合自定义控件
编写复合自定义控件有以下几种方式:
u
(1)创建用户控件,并使用用户控件封装的用户界面实
现复合控件。uFra bibliotek(2)开发一个编译控件,封装一个按钮控件和文本框控
件,通过重写Render方法呈现。
u u
(3)从现有的控件中派生出新控件。 (4)从基本控件类之一派生来创建自定义控件。
复合自定义控件 实例
第7章 用户控件和自定 义控件
学习目的与要求
除在 网页中使用Web 服务器控件外,还可以使用 用于创建 网页的相同技术创建可重复使用的自 定义控件,这些控件称作用户控件。
学习目的与要求
本章即将讲解用户控件和自定义控件的开发和使用。 通过本章的学习你将能够:
u u
了解用户控件的相关概念。 掌握如何将Web窗体转换成用户控件。
u
7.1.3 用户控件的开发
2.完善用户控件 用户控件能够封装一个单元中多个子控件的功能。 用户控件由一个或多个 服务器控件(Button 控 件、TextBox 控件等)以及控件执行功能所需的任何代
码组成。
用户控件还可以包括自定义属性或方法,这些属性或方法向 容器(通常为页)显示用户控件的功能。
u
u
掌握创建和使用用户控件的方法。
学会如何开发简单的自定义控件。理解复合自定义控件

5.1 用户与自定义控件

5.1 用户与自定义控件

2.自定义服务器控件
• 应用于属性的特性
BindableAttribute:设计时特性。指定将数据绑定到属性是否有意义。 在可视化设计器中,属性 浏览器可以在对话框中显示控件的可绑定属性。 (例如,在 Visual Studio 中,可绑定属性显示 在“数据绑定”对话框中。)如果属性没有使用此特性标记,则属性浏览器会推断其值为 Bindable(false)。 [Bindable(true)] BrowsableAttribute:设计时特性。指定是否应在可视化设计器的属性浏览器中显示某个属性。 将 Browsable(false) 应用于不希望在属性浏览器中显示的属性。 没有通过此特性标记某个属性 时,属性浏览器会推断其默认值为 Browsable(true)。 [Browsable(false)] CategoryAttribute :设计时特性。指定如何在可视化设计器的属性浏览器中对属性进行分类。 例如,当页开发人员在属性浏览器中使用分类视图时,Category("Appearance") 将告知属性浏览 器在“外观”类别中显示属性。 可以指定一个对应于属性浏览器中的现有类别的字符串参数,也 可以创建自己的类别。 [Category("Appearance")] DefaultValueAttribute:设计时特性。指定属性的默认值。 此值应与从属性访问器 (getter) 返 回的默认值相同。 在有些可视化设计器(如 Visual Studio)中,DefaultValueAttribute :特 性允许页开发人员使用快捷菜单上的“重置”命令将属性值重置为其默认值。 [DefaultValue("")] DescriptionAttribute:设计时特性。指定属性的简短描述。 在可视化设计器(如 Visual Studio)中,属性浏览器通常在窗口底部显示选定的属性的描述。 [Description("The welcome message text.")]

ASP-NET的控件

ASP-NET的控件

பைடு நூலகம் 5.1 控件概述
Web表单的用户界面元素是服务器控件。有四种服 务器控件: (1) HTML服务器控件:由HTML标签衍生而来,它代表常规的 HTML表单元素,如文本输入框和按钮,但它们是在服务器上 创建的,可以在服务器上控制它们。 (2) Web服务器控件:与此类似,但提供了更多的功能,可 以提供更复杂的用户界面。 (3) 有效性验证控件:用于验证用户的输入,以文本方式存 在,扩展名为.ascx。 (4) 用户控件:又称为自定义的控件,用于实现某些功能。
3.Web服务器控件类型
Web服务器控件大致有以下一些类型: 静态文本控件:如Label控件。 数据输入和显示控件:如TextBox控件。 提交控件:如Button、LinkButton和ImageButton控件。 列表控件:如DropDownList和ListBox控件。 选择控件:如CheckBox、CheckBoxList、RadioButton和 RadioButtonList控件。 数据绑定控件:如DataGrid、GridView 、DetailsView、 FormView、DataList和Repeater控件。 图像控件:如Image控件。 月历控件:如Calendar控件。 广告控件:如AdRotator控件 验证控件:如RequiredFieldValidator控件等。
三、 Image控件
Image控件称为图像(框)控件,用来在页面上展示图片。 在媒体发达的今天,非文字信息的展示显得尤为重要。
四、信息展示页面设计
示例通过在DropDoenList控件中显示某公司所有员工编号, 当在DropDoenList控件中选择某员工的编号时,其下方显示 该员工的所有信息,其中相片使用Image控件显示。

aspnet用户控件

aspnet用户控件

用户控件的应用本节主要学习用户控件的工作原理、如何创建用户控件以及如何向 网页添加用户控件的信息。

本节内容 用户控件概述如何:将Web 窗体页转换为 用户控件如何:在 网页中包括用户控件如何: 用户控件的实例,用实例详细说明如何使用用户控件用户控件概述在前面的教学示例中使用了,提供的标准控件。

毫无疑问,提供了相当丰富的控件。

但是,有时候这些控件还不能满足实际业务功能的要求。

在这种情况下,就可以使用开发具有所有自定义功能的新控件,本节我们学习如何在创建这些控件。

主要学习用户控件及应用。

自定义控件下节学习。

用户控件和自定义控件的优点在开始创建这些Web控件之前,有必要了解他们的用处。

正如类的构建是为了代码重用性,重用现有用户控件也很必要。

例如,如果不提供控件,那么即使是网页/窗体上的一个文本框也需要编码。

TexTbox控件虽小,但为网页开发人员节省了数小时的重复工作时间。

既然这样一种简单的控件能有如此强大的可重用效果,可以想象如果能够重用向DataGrid这样的复合控件,其帮助作用会有多大。

显而易见,用户控件和自定义控件有助于可视化能力和功能能力的可重用性,还有助于软件封装和分布这些功能。

用户控件是可重用的。

可重用控件用两种方式创建,第一个而且是最简单的方法就如同创建一个页面一样。

这种控件成为用户控件。

这些控件可简单地重用现有的 Web控件和HTML元素创建,生成一个ascx文件。

第二种方法是使用C#创建完成自定义的控件,这种控件叫自定义控件。

用户控件和自定义控件的差别●用户控件用.ascx文件表示。

它不是编译代码,便以随网页动态的进行,自定义控件被编译在DLL文件中,是编译代码。

●用户控件不会出现在工具箱中,而自定义控价会出现在工具箱中。

●用户控件支持缓存,而自定义控件不支持缓存。

●用户控件会对使用可视化设计工具的用户提供有限的支持,而自定义控件控件会提供全面的支持。

什么时候使用用户控件一般地,当内容在逻辑上可组合在一起,而且又有可能要在多处使用时,使用用户控件。

8用户控件和自定义控件

8用户控件和自定义控件

8.1 用户控件
创建用户控件的规则( 9.1) 创建用户控件的规则(例9.1) 在用户控件中不可以使用<html>、<body>和<head>这3个HTML标 记 用户控件必须使用特定的扩展名.ascx,否则不能正常运行 如果Web表单中使用了@Page指令,则必须把@Page指令修改为 @Control指令。因为@Control指令除支持trace属性外,还支持大部 分的@Page指令属性
第八章 用户控件和自定义控件
用户控件 自定义控件
8.1 用户控件
用户控件的概念 用户控件最简单的一个定义是布局代码中可重用的部分 ,它以.ascx为扩展名保存 创建用户控件非常简单,它们本来就是网页的一部分, 被封装在一个单独的文件中,可以在一个应用程序中根据需要多 次重用 编写用户控件和编写aspx页面的方法一样,我们只需在aspx页面中 编写代码就能够使用它们 用户控件可以引发自定义事件,由客户端用户来响应事件以调用 处理方法 用户控件一次只能被一个应用程序调用,如果想在不同的应用程 序中使用这些控件,就必须把控件复制到每个应用程序的目录中
8.2 自定义控件
创建自定义控件
第一步:编写控件代码
导入控件通常使用3 导入控件通常使用3个命名空间 System:这个命名空间包含的核心系统类,像字符串string和数据int32等 System.Web:它是所有类的父命名空间。它包括像HttpRequest以及 HttpResponse这样的类 System.Web.UI:该命名空间包含了控件类,许多控件类都属于其子类, 例如System.Web.UI.WebControls、System.Web.UI.HtmlControls 注意: 注意: (1)由于是在自己的命名空间中定义,所以类名是任意的,可给控件定义任何喜 欢的有效名称,但应避免使用已由使用的名称或者运行程序的其他部分 使用的名称,这是因为当页面使用@import指令或者在源文件中使用using指令引 用两个相同的命名空间时,发生命名冲突。 (2)声明类时,将类标记为public,任何人都可以创建并且使用该类的一个实例

最新用户控件和自定义服务器控件

最新用户控件和自定义服务器控件

用户控件和自定义服务器控件在 中,系统自带的服务器控件为应用程序开发提供了诸多便利。

在应用程序开发中,许多功能都需要重复使用,而如果在应用程序开发中重复的编写类似的代码是非常没有必要的。

让开发人员可以自行开发用户控件以提升代码的复用性。

提供了两种选择:(1)用户控件(2)自定义控件一、用户控件1、什么是用户控件用户控件使开发人员能够根据应用程序的需求,方便的定义和编写控件。

开发所使用的编程技术将与编写Web 窗体的技术相同,只要开发人员对控件进行修改,就可以将使用该控件的页面的所有控件都进行更改。

(1)用户控件的文件扩展名为.ascx,而不是.aspx。

(2)用户控件中没有@Page指令,而是包含@Control指令,该指令对配置及其他属性进行定义。

(3)用户控件不能作为独立文件运行。

而必须像处理任何控件一样,将它们添加到窗体中。

(4)用户控件中没有html、body或form元素。

这些元素必须位于宿主页中。

2、编写一个简单的控件项创建一个用户控件,如图1所示。

图1 创建用户控件用户控件创建完毕后,会生成一个.ascx 页面。

.ascx 页面结构同.aspx 页面基本没有什么区别。

在解决方案管理器中可以打开.aspx页面和.ascx页面进行对比,其结构并没有太大的变化。

用户控件中并没有“<html><body>”等标记,因为.ascx 页面作为控件被引用到其他页面,引用的页面(如.aspx 页面)其中已经包含<body><html>等标记。

而如果控件中使用这样的标记,可能会造成页面布局混乱。

用户控件创建完成后,.ascx 页面代码如下所示。

其中没有任何的“<body><html>”等标记,而.ascx.cs 页面代码基本同.aspx 相同,示例代码如下所示。

图2 Default.aspx.cs页面内容图3 myControl.aspx.cs页面内容用户控件能够提高复用性,前面介绍的服务器控件,从很多情况下来说都可以看作是用户控件的一种。

用户控件和自定义控件

用户控件和自定义控件

单单一个简单的控件并不能实现太多的效果,在实际开 发中,可能需要更多的功能,这种复杂功能控件最常见 的就是 SqlDataSource控件。SqlDataSource 控件是 数据源控件,通过 SqlDataSource控件能够配置数据 源,并且实现分页、插入、删除等功能。复合自定义控 件就类似这样一个功能复杂的控件。编写复合自定义控 件有以下几种方式: 1. 创建用户控件,并使用用户控件封装的用户界面实现 复合控件。 2. 开发一个编译控件,封装一个按钮控件和文本框控件, 通过重写Render方法呈现。 3. 从现有的控件中派生出新控件。 4. 从基本控件类之一派生来创建自定义控件。

{ [Bindable(true)] //设置是否支持绑定 [Category("Appearance")] //设置类别 [DefaultValue("")] //设置默认值 [Localizable(true)] //设置是否支持本地化操作 public string Text //定义 Text 属性 { get //获取属性 { String s = (String)ViewState["Text"]; //获取属性的值 return ((s == null) ? "[" + this.ID + "]" : s); //返回默认的属性的值 } set //设置属性 { ViewState["Text"] = value; } } protected override void RenderContents(HtmlTextWriter output) //页面呈现 { output.Write(Text); }

第5章 创建用户控件和自定义控件

第5章  创建用户控件和自定义控件
的扩展名为.ascx,在结构上与网页 ,在结构上与 用户控件的扩展名为 网页 相似,功能与普通Web控件类似。用户控件指页面中加载的 控件类似。 相似,功能与普通 控件类似 功能块,只能嵌入到aspx页面中使用,或嵌入到其他用户控 页面中使用, 功能块,只能嵌入到 页面中使用 件中使用,不能单独作为页使用。 件中使用,不能单独作为页使用。
5.2.4 将控件编译为程序集
可以使用命令行工具csc.exe将所创建的类编译成 将所创建的类编译成dll 可以使用命令行工具 将所创建的类编译成 文件。 文件。
5.2.5 剖析控件的状态
在中,引入与视图状态类似的控件状态,但却在 中 引入与视图状态类似的控件状态, 功能上独立于视图状态。 功能上独立于视图状态。控件状态是专门用来对控件的重要数 据进行存储的,如一个页面控件的页数。页面回发时, 据进行存储的,如一个页面控件的页数。页面回发时,必须用 到这些数据,才能使控件正常工作。 到这些数据,才能使控件正常工作。
5.2.2 为自定义控件控件添加公共属性
从System.Web.UI.WebControls.WebControl命名空间 命名空间 可以派生出要呈现用户界面( )元素的控件, 中,可以派生出要呈现用户界面(UI)元素的控件,或包含 任何其他客户端可见元素的控件。 任何其他客户端可见元素的控件。如果控件要呈现在客户端 浏览器中不可见的元素,则应在System.Web.UI.Control派 浏览器中不可见的元素,则应在 派 生该控件。 类从Control类派生,并添加了与样 类派生, 生该控件。WebControl类从 类从 类派生 式相关的属性, 式相关的属性,如Font、ForeColor和BackColor。此外,一 、 和 。此外, 个从WebControl派生的控件,也将自行拥有 派生的控件, 个从 派生的控件 也将自行拥有的主 的主 题功能。 题功能。

c#用户控件,usercontrol,自定义控件属性

c#用户控件,usercontrol,自定义控件属性

c#⽤户控件,usercontrol,⾃定义控件属性1、2、拖动添加:画⾯上如需多个usercontrol,添加TableLayoutPanel,然后在⼯具箱中找到usercontrol,拖到相应框中3、代码添加:主窗⼝中有多个Tab选项卡,可以将每个Tab选项卡的视图独⽴成⼀个UserControl,通过⼿动添加【C#】UserControl⽤法// 与Form的设计类似,只是继承⾃UserControlnamespace Demo.Views{public partial class PrintPanel : UserControl{public PrintPanel(){InitializeComponent();}......}}namespace Demo{public partial class Main : Form{private PrintPanel printPanel;public Main(){......printPanel = new PrintPanel();printPanel.Dock = DockStyle.Fill;tab1.Controls.Add(printPanel);......}}}⾃定义属性设置后在主窗体,选择⾃定义控件时,在属性窗体界⾯,可以看到设置的属性。

category设定的是属性在属性⾯板上显⽰的类别,当使⽤了类别时,组件属性和事件可以按逻辑分组显⽰在属性浏览器中。

Category("Appearance")就可以把属性从杂项转移到外观。

[Category("⾃定义"), Browsable(true), Description("当前重量")]public int CurWgt{get => m_CurWgt;set{this.m_CurWgt = value;PubTool.UIInvoke.SetLabel(this.lbl_CurWgt, value.ToString("0"));}}Browsable 是否显⽰在属性栏内Category 在属性栏中显⽰的分组名Description:功能介绍,如Description("选项框的颜⾊")],当在属性设置窗⼝编辑该属性时,在属性浏览器底部将显⽰该属性的功能介绍;。

Silverlight 用户控件与自定义控件详解

Silverlight 用户控件与自定义控件详解

Silverlight 用户控件与自定义控件详解在Silverlight中你如果想把UI封装成单独的一部分或者创建一个新的页面,你可能会在Visual Studio中通过右击“项目-> 添加-> 添加新项->Silverlight用户控件”这样来创建控件。

如果你是这么做的,那么这篇文章非常适合你。

它将适用于任何基于XAML技术:WPF、silverlight、Windows Phone 和Windows 8 Runtime。

尽管用户控件很棒,它们能快速的拼在一起,或一次又一次的重复使用,这是它们的很大一个价值所在。

但是如果我告诉你还有另一种控件类型,具有干净的代码、更强大性能更好,而且比用户控件的方式更加灵活、重复的使用,那它将会是大量开发人员的最爱吗?其实这个你早就知道,因为你已经一直在使用他们:Button、ListBox、ItemsControls、Grid、StackPanel等。

你可以查看Xaml Style彻底改变控件的外观和体验,而不触及任何代码。

这是多么强大的想法,看看下面一个Silverlight ListBox 行星DEMO 。

在左边,你会看到一个绑定了行星名单的ListBox。

在右边,你能看到一个太阳系,但事实上,这也是一个ListBox。

这里没有涉及到额外的代码,完全是由修改Template达到效果。

你可以按上下键,它有正常ListBox的功能。

让我重复一遍:做到这一点我没有添加任何后台代码到ListBox。

事实上,该页面后台代码完全是空的。

如果你不相信,这里有源码下载解剖用户控件首先,让我们解剖一个典型的用户控件看看,充分了解下它是怎么工作的这是关键。

在下面我们控件中一部分XAML确定了布局,为了保持它是一个简单的例子,里有只一个Grid和一个Button。

1<UserControl x:Class="MyApp.SilverlightControl1"2 xmlns="/winfx/2006/xaml/presentation"3 xmlns:x="/winfx/2006/xaml">45<Grid x:Name="LayoutRoot" Background="White">6<Button Content="Click Me" Click="Button_Click" Opacity=".5"/>7</Grid>8</UserControl>我们控件的后台代码:1using System.Windows;2using System.Windows.Controls;3using System.Windows.Media;45namespace SolarSystemRetemplate6 {7public partial class SilverlightControl1 : UserControl8 {9public SilverlightControl1()10 {11 InitializeComponent();12 }1314private void Button_Click(object sender, RoutedEventArgs e)15 {16 LayoutRoot.Background = new SolidColorBrush(Colors.Red);17 }18 }19 }这里有两个地方值得注意:”LayoutRoot”是在XAML中使用X:Name定义的,我们在后台代码中通过这个名字自动获取了这个变量。

各大公司面试题目分类-.net

各大公司面试题目分类-.net

编号题型难度技术方向知识点题目10001问答题算内存容量大小(根据内存地址)10002问答题二叉树的排序(前序、后序、中序)10003问答题通讯协议的相关知识(TCP/IP、HTTP等10004问答题基本的SELECT语句10005问答题What does the ThreadStaticattribute do?10006问答题 Does C# support multipleinheritance?10007问答题C# provides, by default aparameterless constructor.10008问答题What’s the differencebetween an interface and 10009问答题What’s the differencebetween deep copy and10010问答题If an exception is throwninside a catch block, will 10011问答题What’s the differencebetween Debug and Trace 10012问答题 What’s the final result?(下面这段代码的最终运行结10013问答题 What is the role of theDataReader class in10014问答题Can a struct inherit fromanother struct?10015问答题Can a struct inherit fromanother class?10016问答题Can a struct be the baseof another class?10017问答题Can a struct implement aninterface?10018问答题What’s the differencebetween struct and class?10019问答题如何选择使用结构还是类10020问答题说出你对remoting 和webservice的理解和应用10021问答题的身份验证方式有哪些,原理是什么?10022问答题 如何实现一个自定义类的序列化10023问答题3、 怎样实现无对话框的文件下载10024问答题5、 Hashtable 添加内容的方式有哪几种,有什么区别?10025问答题6、 试用客户端脚本实现“全选“的功能,即把页面的所有10026问答题7、 不通过HtmlInputFile之类的10027问答题8、 写出程序运行的结果Public class Base10028问答题接口和抽象类的区别?10029问答题解释DataSet(ds) 和 ds as DataSet 的含义10030问答题WebService是什么意思?什么情况下用WebService?10031问答题中内置对象是什么?10032问答题OLEDBConnection 和SQLConnection 有什10033问答题 6. 采用怎样的方法保证数据的完整性?10034问答题application与session的区别10035问答题用javascript写一个脚本,以确认用户输入10036问答题viewstate的用法以及button的causevalide的作用10037问答题 5. 说出一到两个你写过的自定义控件以及他的作用,并说10038问答题 6. XML的XSLT的用法10039问答题7. 数据流有什么要素10040选择题 (1).在对SQL Server 数据库操作时应选用(A )。

用户控件和自定义控件的异同

用户控件和自定义控件的异同

用户控件和自定义控件的异同
丁桂娟
【期刊名称】《黑龙江科技信息》
【年(卷),期】2009(0)18
【摘要】着重介绍了组件、控件、户控件和自定义控件的基本概念,以及用户控件和自定义控件在实际应用方面的差异比较.
【总页数】1页(P65)
【作者】丁桂娟
【作者单位】黑龙江大学网络管理中心,黑龙江,哈尔滨,150000
【正文语种】中文
【中图分类】TP311.52
【相关文献】
1.一种在中使用Web用户控件的方法 [J], 李商旭;
用户控件的使用在应用开发中的应用 [J], 黄汉堂;汪洁
中WEB用户控件和自定义控件辨析 [J], 任海科
4.一种在中使用Web用户控件的方法 [J], 李商旭
5.用户控件在网站开发登陆模块中的技术研究 [J], 许晓萍;
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用户控件和自定义控件的定义的区别
(一).用户控件和自定义控件概述
用户控件(UserControl): 扩展名为*.ascx,跟*.aspx 在结构上相似,是指页面中
加载的功能块,只是用户控件不能单独作为页面运行,必须嵌入到*.aspx页面或其它用
户控件中使用.
自定义控件,跟HtmlControl或WebControl相似,编译后可以添加引用到工具栏里
面,直接用鼠标拖动使用.
(二).使用
在一个大系统中,有时候会只能几个*.aspx页面,其余的都是做成*.ascx页面,
这样可以增强页面之间的藕合性,一个用户控件*.ascx都作为一个独立的功能块.
自定义控件是指编译后直接可以放到工具箱中用,就像TextBox,DataGrid一样
在设计器中可以用鼠标拖动到页面上使用.
自定义服务器控件分为两种:
1.一种是用*.aspx代码和*.cs代码编译后
生成DLL,再添加引用到工具箱使用.
一般用于WebForm中.
2.另一种是只用*.cs实现,再编译生成DLL,添加到工具箱使用.
一般用于WinForm中.
自定义控件生成步骤:
比如:
1. 将一个Button从设计器拖到页面中,
对按钮大小,颜色或文本设置一个固定值,保存文件名为: a.cs
2. csc /r:System.dll
/t:library/out:..\..\A.dll a.cs
3. 右击工具箱空白处,弹出右击菜单后,选“添加移除项”,将刚生成的DLL
添加到工具箱里面来,这样,就可以像一般的Button一样拖动使用了。

相关文档
最新文档