Web用户自定义控件的开发
- 格式:doc
- 大小:1.21 MB
- 文档页数:5
简单易学图文并茂创作控件自己创作控件,分三种主要的形式:复合控件,扩展控件,和自定义控件。
复合控件,顾名思义就是把现有的进行组合,让它们协作形成功能强大的新控件;扩展控件,是以某一现有控件为基础,让它具有新的功能;自定义控件,则是由作者完全操刀,建立一个全新的控件。
可以用一个比喻来理解这三种形式的区别:复合控件,就是你买好各个电脑配件,组装成一台电脑;扩展控件,就是把显卡上的零件更换几个,让它能力比标准产品更强大;自定义控件,就是自己制作一个名为“生人勿近”的硬件,他可以通过PCI插槽,安装到电脑上,一旦生人走近,它能识别并发出狗叫……综上,三种形式中,复合控件相对来说是最简单的;扩展控件在其次;自定义控件最难。
通常,我们使用前两种技术,就能创作出很复杂的控件了。
范例1:Excel的单元格Cell,当它没有焦点的时候,就是一个TextBlock,当它获得焦点,可以编辑的时候,就是一个TextBox框。
这样一个控件,将是我们今后制作表格控件的基础。
范例1中,我们会用到两种技术,复合控件和扩展控件。
在VS中,要进行如下的工作(推荐使用VS2010)1.新建一个Solution,名为Cell;2.添加一个名为“TestAPP”的WFP项目。
我们用他来测试成果;3.添加一个名为“Ctrl_Cell”的WFP用户控件项目。
然后,我们需要一个TextBlock,和一个TextBox控件,这是我们的演员。
考虑一下它们应该怎样演出,才能达到我们需要的效果:●平时这个控件,应该表现出TextBlock的外观;●当我们点击这个Label时,隐藏的TextBox控件跑到TextBlock的前面,并且它显示的值和TextBlock一样。
同时,这个值是可以编辑的;●编辑完TextBox的内容,按下Enter,或者点击屏幕上的其他控件,让TextBox失去焦点,TextBox消失。
TextBlock跑到前面来,并且显示编辑后的内容。
web插件化解决⽅案开发分享经过苦逼的⼤半年开发,我的web插件花⽅案最终得以实现。
系统由WebAPP运⾏时(Web Framework)和WebAPP开发IDE(APP IDE)两部分组成。
由APP IDE开发出来的WebAPP运⾏在Web Framework上。
接下来我将从WebAPP的开发、发布、WebSite中运⾏WebAPP这三点来展开本⽂。
开发步骤⼀。
在IDE中创建了⼀个项⽬,然后打开项⽬。
编辑”appConfig“ ⽂件。
”appConfig“⽂件⾥可以定义APP的名称、开发者、描述等信息。
图1:use_global_classes:false节点是设置是否在APP中使⽤⾃⼰的global类⽂件⽂件.类似的global⽂件。
use_global_verifyAC:false节点是设置是否实现⾃⼰的访问控制⽅式。
就是说某个APP可以是⼀个⽤户相关的系统,要实现⾃⼰的⾓⾊,权限的话就需要开启此选项。
然后系统才会使⽤global类⾥相应权限验证⽅法。
error_handling_levels.global_classes:[ignore|interrupt]节点是设置global类中对代码异常的处理机制。
ignore:忽略所有错误,程序继续执⾏。
interrupt:如果有错误,则程序将中断并且抛出异常。
开发步骤⼆。
创建⼀个控件,控件实现⼀个表单。
可以提交信息,并且打印出提交的结果。
系统中控件是必须在控件包中。
⽽控件包是可以单独导⼊与导出,可以引⽤别⼈做好的控件到⾃⼰的项⽬中。
这样可以⼤⼤的加快开发效率。
控件⼜包括UI控件,公共UI控件,⾃定义UI控件,⾃定义控件。
特性如下布局⽅式外部使⽤公共UI控件同上仅⽀持。
当APP安装之后,此类型的控件除了在APP内部可以使⽤。
其他的APP也可以使⽤。
⾃定义UI控件页⾯任何位置,布局以定位由控件⾃⼰实现。
⾃定义控件⽆UI。
此类型控件是⽆UI分别创建⼀个名为“widget_1”的控件包和名为“Form”的UI控件。
自定义控件开发一般而言,Visual Studio 2005中自带的几十种控件已经足够我们使用了,但是,在一些特殊的需求中,可能需要一些特殊的控件来与用户进行交互,这时,就需要我们自己开发新的、满足用户需求的控件。
要开发自己的控件,有几种方法:❶复合控件(Composite Controls):将现有的各种控件组合起来,形成一个新的控件,来满足用户的需求。
❷扩展控件(Extended Controls):就是在现有的控件基础上,派生出一个新的控件,增加新的功能,或者修改原有功能,来满足用户需求。
❸自定义控件(Custom Controls):就是直接从System.Windows.Forms.Control 类派生,也就是说完全由自己来设计、实现一个全新的控件,这是最灵活、最强大的方法,但是,对开发者的要求也是最高的。
要实现一个自定义控件,必须为Control类的的OnPaint事件编写代码,在OnPaint事件中实现自定义控件的绘制工作。
同时,还可以重写Control类的WndProc方法,来处理底层的Windows消息。
所以说,要实现一个自定义控件,对开发者的要求较高,要求开发者必须了解GDI+和Windows API的知识。
下面我们就分别给大家介绍这三种方法。
❶复合控件(Composite Controls)复合控件实际上是控件的集合,类似于堆积木。
因此,可以按照用户的需求,把VS 2005工具箱中的控件任意组合起来,形成一个复合控件。
在以后使用中,将生成的这个复合控件作为一个控件来对待。
复合控件一般都是从UserControl类派生而来,因此复合控件(用户控件)可以在“UserControl测试容器”中进行测试。
复合控件的创建步骤:第一步:新建一个Windows控件库项目“CompositeControlDemo”第二步:向复合控件中添加Visual Studio 2005中的控件组合。
用户控件和自定义控件的定义的区别
(一).用户控件和自定义控件概述
用户控件(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一样拖动使用了。
为合作伙伴创造价值表单控件点击下载前端控件示例代码大全表单代码结构:01 <form method="POST" class="ui-from" name="myform" action="" target="_self">02 <div class="v52fmbx">03 <h3 class="v52fmbx_hr">功能分区<span class="tips">描述文字,用于说明该设置的作用。
</span></h3>04 设置项目05 设置项目06 设置项目07 ....08 <h3 class="v52fmbx_hr">功能分区</h3>09 设置项目10 设置项目11 ....12 <dl class="noborder">为合作伙伴创造价值13 <dt> </dt>14 <dd>15 <input type="submit" name="submit" value="保存" class="submit">16 </dd>17 </dl>18 </div>19 </form>为合作伙伴创造价值功能分区:说明:用于在单个页面中选项多的时候划分区域,提升用户体验示例:1 <h3 class="v52fmbx_hr">功能分区<span class="tips">描述文字,用于说明该设置的作用。
VBA中的用户界面设计和自定义控件随着计算机技术的不断发展,用户界面设计在软件开发中扮演着越来越重要的角色。
VBA(Visual Basic for Applications)作为一种强大的编程语言,提供了丰富的工具和功能,使得用户界面设计和自定义控件变得更加灵活和易于实现。
本文旨在介绍VBA中的用户界面设计和自定义控件的相关内容。
在VBA中,用户界面设计往往基于表单(Form)。
通过表单,可以创建交互性强、用户友好的应用程序。
VBA提供了丰富的控件类型,如文本框、标签、按钮、列表框等,可以用来构建界面元素。
用户可以通过拖拽的方式将这些控件添加到表单上,并进行相应的属性设置和事件编写,实现丰富的用户界面交互效果。
在进行用户界面设计时,设计原则和技巧是非常重要的。
首先,界面整洁简明,避免过多的控件和复杂的布局,以免用户感到困扰。
其次,界面要符合用户的直观操作习惯,提供清晰明了的导航和操作指引。
此外,界面的美观性和色彩搭配也是需要考虑的因素,可以根据应用程序的定位和目标用户来选择适合的主题和风格。
除了基本的表单控件外,VBA还支持自定义控件的创建和使用。
自定义控件可以满足特定业务需求,并且可以根据个人偏好进行灵活的定制。
VBA中的自定义控件可以通过编程方式创建,也可以通过ActiveX控件或Windows API实现。
编程方式创建自定义控件需要使用VBA提供的控件对象模型。
通过创建类模块和控件模块,可以定义新的控件类型,并在需要的地方使用。
自定义控件具有更高的灵活性和扩展性,可以根据实际需求设置不同的属性和事件,实现个性化的用户界面。
通过ActiveX控件,开发者可以使用第三方控件库,如Microsoft Office裡的常用控件,以扩展VBA的功能。
ActiveX控件是可重用的二进制组件,可以在VBA开发环境中进行使用。
这些控件具有更丰富的功能和更好的性能,可以提升用户界面的体验和效果。
另外,使用Windows API可以调用操作系统提供的功能和控件,实现更高级的用户界面效果。
VB实现自我注册控件VB语言是一种面向对象的编程语言,可用于开发图形用户界面(GUI)应用程序。
在VB中,可以通过编写自定义控件来增强应用程序的功能。
本文将介绍如何使用VB实现自我注册控件。
1.创建自定义控件:首先,需要创建一个新的VB项目,并添加一个新的用户控件。
可以通过以下步骤完成:-在"解决方案资源管理器"窗口中,右键单击项目名称,选择"添加"->"新建项"。
-在弹出的对话框中选择"用户控件",并指定一个名称,然后点击"添加"按钮。
-在设计视图中,可以向控件添加所需的控件和代码,以满足应用程序的需求。
2.实现自我注册功能:自我注册是指在用户控件中编写代码来自动将控件注册到工具箱中,以便在其他项目中重复使用。
可以通过以下步骤实现自我注册功能:- 使用`ToolboxItem(true)`属性标记自定义控件类,使之能够在工具箱中显示。
- 编写一个自定义的设计器类,并使用`Designer`属性将其与自定义控件类关联。
-在用户控件的代码视图中,增加以下代码:```vb<ToolboxItem(True)><Designer(GetType(CustomControlDesigner))>Public Class CustomControl'控件的代码和属性'控件的构造函数和事件处理方法End ClassPublic Class CustomControlDesignerInherits System.Windows.Forms.Design.ControlDesignerDim svc As ITypeResolutionService =CType(Me.GetService(GetType(ITypeResolutionService)), ITypeResolutionService)svc.ReferenceAssembly(System.Reflection.Assembly.GetExecutin gAssembly(.Location)Dim typeName As String = Me.GetType(.Namespace & "." & Me.GetType(.Name.Substring(0, Me.GetType(.Name.Length - "Designer".Length)Dim type As Type = svc.GetType(typeName)If (type IsNot Nothing) ThenDim host As IDesignerHost =CType(Me.GetService(GetType(IDesignerHost)), IDesignerHost) Dim tp As ToolboxItem = New ToolboxItem(type.FullName)Dim tlh As System.Drawing.Design.ToolboxItemCreatorCallback = New System.Drawing.Design.ToolboxItemCreatorCallback(AddressOf CreateInstance)type.Assembly.GetCustomAttributes(GetType(ToolboxItemAttribu te), False)HosttoolboxService.AddCreator(tlh, tp)End IfEnd SubPrivate Function CreateInstance(ByVal serializedObject As icContainer, ByVal reportedError As String) As Object Return cf.CreateInstance(serializedObject, reportedError)End FunctionEnd Class```通过以上步骤,自定义控件将被自动注册到工具箱中,并可以在其他VB项目中使用。
vb开发ocx实例-回复VB开发OCX实例在本文中,我们将讨论如何使用Visual Basic(VB)开发一个OCX (Object Linking and Embedding Custom Control)控件的实例。
OCX是一种自定义控件,可以在其他应用程序中嵌入和使用。
我们将按照以下步骤进行开发:1. 理解OCX控件OCX控件是一种可重用的二进制文件,它包含了控件的代码和属性。
它可以在多个应用程序中使用并具有独立于宿主应用程序的用户界面。
开发OCX控件的好处之一是可以将其添加到多个应用程序中,从而提高代码重用性和开发效率。
2. 打开Visual Basic环境首先,我们需要打开Visual Basic开发环境。
在环境中,我们可以创建新的项目并开始开发我们的OCX控件。
3. 创建新项目在Visual Basic中,选择“File”菜单,然后选择“New Project”选项。
选择“ActiveX Control”模板,并为项目命名。
4. 设计用户界面在VB的设计视图中,我们可以使用控件工具箱中的各种控件来设计OCX控件的用户界面。
您可以根据自己的需求添加按钮、文本框、标签等控件,并调整其位置和大小。
5. 添加属性在OCX控件中,我们可以定义自定义属性,从而允许其他应用程序更改和访问这些属性。
在属性窗口中,我们可以为控件定义属性的名称、类型和默认值。
通过设置属性的访问级别,我们还可以控制属性是否可以从外部应用程序中访问或更改。
6. 实现控件逻辑通过VB的事件处理程序,我们可以为OCX控件添加所需的功能和逻辑。
例如,当用户单击按钮时,我们可以处理该按钮的点击事件,并执行相应的代码。
7. 调试和测试在开发过程中,我们应该使用适当的调试技术来验证代码的正确性。
通过使用断点、输出语句和调试工具,我们可以跟踪代码的执行流程并解决可能存在的问题。
8. 编译和注册OCX控件完成OCX控件的开发后,我们需要将其编译为一个二进制文件,并注册到Windows操作系统中。
子任务2:页面顶部和底部设计( Web服务器控件实现)对于页面顶部控件WebUserControl.ascx和页面底部控件WebUserControl2.ascx,添加 Web服务器控件来实现设计效果。
(1)启动Visual Studio2008,打开网站文件Website1。
(2)单击“添加新项”按钮,在弹出的窗口中选择“Web用户控件”,然后单击“添加”按钮即可为当前网站文件添加一个用户自定义控件,该控件的名称为:WebUserControl.ascx。
(3)在控件添加完成后,系统自动打开该控件的设计窗口,有“设计”模式和“源”模式两种模式可供开发人员使用。
(4)切换到“设计”模式,为WebUserControl添加一个Table控件,在属性窗口设置Rows属性值,如图2-30所示。
图2-30 Table控件的属性窗口(5)在打开的“TableRow集合编辑器”窗口为Table添加1个TableRow,如图2-31所示。
图2-31 “TableRow集合编辑器”窗口图2-32 “TableCell集合编辑器”窗口(6)再单击Cells,在打开的“TableCell集合编辑器”窗口为TableRow添加2个TableCell,如图2-32所示。
(7)然后切换到“源”模式,编写代码,为每一个TableCell分别添加一个Image控件,设置其属性,相关代码如下。
<asp:Table ID="Table1" runat="server" BackColor="White" GridLines="Horizontal"Height="264px" style="text-align: center" Width="1220px"><asp:TableRow runat="server"><asp:TableCell runat="server" Width ="200px"><asp:Image ID ="Image1" runat ="server" ImageUrl="~/img/104.jpg"ImageAlign ="Left" /></asp:TableCell><asp:TableCell runat="server"><asp:Image ID ="Image2" runat ="server" ImageUrl="~/img/头部.jpg"ImageAlign ="Left" /></asp:TableCell></asp:TableRow></asp:Table>(8)切换到“设计”模式,为WebUserControl2再添加一个Table控件,并设置其为1个TableRow,6个TableCell。
(9)切换到“源”模式,编写代码,为每一个TableCell分别添加一个HyperLink 超链接控件,相关代码如下:<asp:Table ID="Table2" runat="server" GridLines="Horizontal"style="text-align: center; margin-left: 0px" Width="1220px"><asp:TableRow runat="server"><asp:TableCell runat="server"><asp:HyperLink ID ="HyperLink1" runat ="server" Text ="首页" NavigateUrl ="" ></asp:HyperLink></asp:TableCell><asp:TableCell runat="server"><asp:HyperLink ID ="HyperLink2" runat ="server" Text ="用户管理"NavigateUrl ="" ></asp:HyperLink></asp:TableCell><asp:TableCell runat="server"><asp:HyperLink ID ="HyperLink3" runat ="server" Text ="修改密码"NavigateUrl ="" ></asp:HyperLink></asp:TableCell><asp:TableCell runat="server"><asp:HyperLink ID ="HyperLink4" runat ="server" Text ="个人信息调查"NavigateUrl ="" ></asp:HyperLink></asp:TableCell><asp:TableCell runat="server"><asp:HyperLink ID ="HyperLink5" runat ="server" Text ="学生信息查询"NavigateUrl ="" ></asp:HyperLink></asp:TableCell><asp:TableCell runat="server"><asp:HyperLink ID ="HyperLink6" runat ="server" Text ="关于我们"NavigateUrl ="" ></asp:HyperLink></asp:TableCell></asp:TableRow></asp:Table>(10)页面顶部的设计效果如图2-33所示。
图2-33 页面顶部WebUserControl设计效果图(11)单击“添加新项”按钮,添加一个Web用户控件WebUserControl2.ascx,进行页面底部的设计。
(12)切换到“设计”模式,为WebUserControl2添加一个Table控件,在属性窗口设置Rows属性值,设置该Table控件为3个TableRow,如图2-34所示。
图2-34 “TableRow集合编辑器”窗口图2-35 “TableCell集合编辑器”窗口(13)再单击Cells,在打开的“TableCell集合编辑器”窗口分别为每一个TableRow添加一个TableCell,并设置Text属性,如图2-35所示。
(14)然后切换到“源”模式,查看相关代码如下:<%@ Control Language="C#" AutoEventWireup="true"CodeFile="WebUserControl2.ascx.cs" Inherits="WebUserControl2" %> <asp:Table ID="Table1" runat="server" BackColor="#E1E1E1" BorderStyle="Solid" GridLines="Horizontal" Height="123px" style="text-align: center"Width="1293px"><asp:TableRow runat="server"><asp:TableCell runat="server">版权所有:陕西工业职业技术学院</asp:TableCell></asp:TableRow><asp:TableRow runat="server"><asp:TableCell >联系方式:陕西省咸阳市文汇西路12号</asp:TableCell></asp:TableRow><asp:TableRow runat="server" BorderColor="#003366" BorderStyle="Solid"><asp:TableCell >邮政编码:712000 电话:029-333221541</asp:TableCell></asp:TableRow></asp:Table>(15)仔细阅读这段代码,可以看出, Web服务器控件Table由若干个行TableRow组成,每一个行TableRow又由若干个列TableCell组成,读者在开发过程中,可以根据需要自行添加行和列。
请区分HTML代码和代码的区别。
(16)设计效果如图2-36所示。
图2-36 用户自定义控件WebUserControl2设计效果图至此,网站文件中需要用到的页面顶部和页面底部文件就分别开发完成,在后面的页面设计与开发过程中,只需要像添加控件一样,将这两个用户自定义控件拖放至页面合适位置即可。