在VS2008中创建自定义控件(八)输出HTML代码

C# 自定义按钮控件教程与实践 自定义控件是软件开发中提升用户界面(UI)一致性和复用性的重要工具。在本章中,我们将探讨自定义控件的基本概念以及它们在整个开发过程中的重要性。自定义控件是开发者为了满足特定需求,从现有控件或从头开始创建的用户界面组件。它们可以嵌入到应用程序中,以增强应用程序的功能性和美观性。自定义控件可以封装复杂的功能,并通过简化的接口暴露给开发者,使得在不同的上下文中重用相同的UI元素变得更加容易。 阅读详情

 

 


 

本文目的:

初步理解Render()方法和RenderContents()方法 的作用

 


 

 

    在《在VS2008中创建自定义控件(六)创建完全自定义控件》中我们介绍了创建完全的自定义控件的方法,在该文章中,VS默认的自定义控件继承的是WebControl类,这个类是所有Web控件的基类。事实上,除了WebControl类之外,自定义控件还可以继承Control类和CompositeControl类。其中Control类是ASP.NET所有控件的基类,而CompositeControl类是可以作用于任何组合控件的基类。另外,这三个类也不是独立的类,CompositeControl类继承了WebControl类,WebControl类继承了Control类。

 

    在《在VS2008中创建自定义控件(六)创建完全自定义控件》中创建的自定义控件最终会在浏览器窗口输出<span></span>标签,而如果你想更进一步的输出内容的话,你就有可能需要重写RenderContents()方法。(如果你的自定义控件继承的是WebControl类和CompositeControl类,则重写RenderContents()方法;如果你的自定义控件继承的是Control类,则重写Render()方法。)

 

    现在,我们继续打开《在VS2008中创建自定义控件(六)创建完全自定义控件》中的源代码,将自定义控件的Text属性值设为“Hello”,如下图所示。

 

    在浏览器中查看运行结果如下图所示:

 

    从上图中我们可以看到,自定义控件在浏览器窗口输出了“Hello”。为什么会输出Text属性值,而不是其他的呢?我们来看一个myCustomControl.cs文件的源代码吧,如下所示:

 

 

    myCustomControl.cs文件的源代码中,与输出相关的就是RenderContents()方法,该方法 可以将自定义控件的内容发送给HtmlTextWriter对象。而HtmlTextWriter对象的作用就是编写在浏览器中输出内容。

    在本例中,使用了HtmlTextWriter对象的Write()方法在浏览器窗口输出了Text属性值。

    我们也可以将Write()方法中的参数稍作修改,让它输出其他内容,如以下代码所示。

 

 

    生成解决方案后在浏览器窗口中查看运行结果,可以看到运行结果如下图所示。

 

    从上图中我们可以看出,虽然自定义控件的Text属性值没有变,但是运行结果却不太一样了,我们也可以查看一下源代码,如下图所示。

 

 

    从上图中可以看出,自定义控件的输出内容也改变了。

===================================================================

原创不容易,转载请注明出处:http://hi.youkuaiyun.com/smallfools

相关链接:

  1. 在VS2008中创建自定义控件(一)创建网站项目和自定义控件项目
  2. 在VS2008中创建自定义控件(二)创建自定义控件并将其添加到工具箱中
  3. 在VS2008中创建自定义控件(三)在网页中添加自定义控件
  4. 在VS2008中创建自定义控件(四)为自定义控件添加默认值
  5. 在VS2008中创建自定义控件(五)修改tagprefix
  6. 在VS2008中创建自定义控件(六)创建完全自定义控件
  7. 在VS2008中创建自定义控件(七)自定义控件的中常用到的特性
  8. 在VS2008中创建自定义控件(八)输出HTML代码
  9. 在VS2008中创建自定义控件(九)添加属性
  10. 在VS2008中创建自定义控件(十)添加枚举型属性
  11. 在VS2008中创建自定义控件(十一)添加在属性窗口中可折叠的属性(一)
  12. 在VS2008中创建自定义控件(十二)添加在属性窗口中可折叠的属性(二)
  13. 在VS2008中创建自定义控件(十三)添加内镶属性
  14. 在VS2008中创建自定义控件(十四)内镶属性与内联属性的优先级
  15. 在VS2008中创建自定义控件(十五)创建控件时出错(未能对属性XXX设置XXX)的解决方法

===================================================================

    以上代码可以从http://download.youkuaiyun.com/source/3267836下载

 

创建自定义控件(四)为自定义控件添加默认值 博文《在VS2008中创建自定义控件(四)为自定义控件添加默认值》(http://blog.csdn.net/smallfools/archive/2010/06/01/5638751.aspx)的源代码 立即下载

相关推荐

如何生成用户控件的DLL文件方法 VS开发环境 C#

开发员在自制“用户控件”时往往要生成DLL类库文件,方便以后其它项目的调用,在此介绍一下用户控件的DLL生成方法,图文并茂,注释齐全,简单易学,活学活用

Android 自定义控件

Android 自定义控件是指开发者根据项目需求,通过继承现有的控件或直接继承 View 类,定制开发的控件。与系统提供的标准控件相比,自定义控件通常具有更加个性化的样式、功能和行为,能够更好地满足特定的 UI 设计要求和用户体验需求。自定义控件可以应用于各种需求,例如:自定义按钮、图表、动画效果、复杂的布局、响应特定交互等。其核心目的是增强应用的灵活性和可定制性。这种方式通过继承 Android 系统提供的标准控件,重写其方法来实现自定义的功能或样式。

L1442760086的博客 1803

visual_studio控件大全+详解+实例经典教程

详细讲课了Visual Studio 2008提供了很多控件用于开发Windows应用程序,在本章中将介绍每一个控件的常用属性、方法、事件及其具体应用。同时,部分实例将界面设计和代码编写结合起来,开发出具有一定功能的Windows应用程序。

C# Winform自定义控件(Button)

Winform自带控件功能比较单一,针对于现在更丰富的UI设计,已经不适用于丰富多彩的界面设计,所以需要通过Visual Studio的自定义控件重新自定义按钮,保证满足设计过程中的正常使用,下面我们一步一步创建自定义按钮。1.打开Visual Studio(我这里使用的是2022版)--> 选择创建新项目-->选择类库(.NET Framework)-->填写项目名称和位置-->创建;

Klein的博客 5642

qupath再度更新:使用WSInfer进行深度学习

我们在下面提供了一个示例,说明如何使用 WSInfer 创建 WSI 中肿瘤和肿瘤浸润淋巴细胞 (TIL) 的空间图谱,这些图谱被认为在几种癌症中既有预后又有预测意义6,10,11,12.由于 WSI 非常大,因此它们通常被分解为补丁,以使分析变得可行。补丁分类的输出通常是空间分类地图,通常可以跨 WSI 集成,以创建表示该幻灯片的诊断、预测或“分数”的单个输出。在当前的实施中,我们专注于斑块分类的通用任务,该任务广泛用于广泛的病理学应用,具有促进诊断、预后或预测功能的深度学习模型。

hx2024的博客 2199

Mediapipe姿态估计——用坐标计算手指关节弯曲角度并实时标注

利用mediapipe搭建姿态检测模型;mediapipe人体标注节点坐标;mediapipe计算手指弯曲角度并实时渲染;mediapipe计算关节弯曲角度。mediapipe手势识别;mediapipe姿态检测模型;mediapipe学习。

kalakalabala的博客 1万+

Android 自定义控件笔记(如何创建自己的自定义控件,具体步骤)

自定义View,自定义控件

Chenyile161616的博客 2199

瑞萨RA6M5驱动ST7735屏幕避坑指南:从软件SPI到显示汉字与图形的完整流程

本文详细介绍了瑞萨RA6M5单片机驱动ST7735屏幕的完整流程,涵盖硬件连接、软件SPI控制、汉字显示及图形绘制优化等关键步骤。通过避坑指南和实用代码示例,帮助开发者解决屏幕初始化、时序控制、字库移植等常见问题,实现高效稳定的显示效果。

weixin_28705087的博客 275

vs工具箱常用控件

button 按钮 check box复选框 ckeck boxlist:复选框列表 radiobutton:单选框控件 lable:标签控件 combo box组合框(下拉列表) picture control图片控制 FileUpload:上传文件控件 timer:计时器 serialport:端口 textbox:文本框 panel:容器 ...

lhjueuue的博客 6707

几种常见的Web攻击

几种常见的Web攻击 文章目录几种常见的Web攻击一、DoS攻击1.SYN洪水攻击2.IP欺骗3.Land攻击4.针对DoS攻击的防御二、CSRF攻击1. CSRF攻击的发生有三个必要条件:2.几种防护方法:三、XSS漏洞攻击1.非持久型XSS漏洞2.持久型XSS漏洞四、SQL注入1.SQL注入的危害2.SQL注入的方式3.防止SQL注入的解决方案 一、DoS攻击 DoS(Denial of Service),拒绝服务,顾名思义这种攻击是为了让服务器无法提供正常服务,最常见的DoS攻击是网络带宽攻击和连

wolfGuiDao的博客 1259

【YOLOs-CPP-图像分类部署】04-项目优化(加速部署)

本文详细介绍了将YOLO图像分类C++部署项目从CMake迁移到Visual Studio控制台应用的全过程。针对低配CPU性能瓶颈问题,作者通过替换多线程HPP代码为官方实现,并采用448x448固定输入尺寸优化推理速度。项目配置包含OpenCV和ONNX Runtime环境设置,实现了图像批量处理、分类结果显示及结果日志输出功能。关键步骤包括依赖库配置、DLL部署和代码调试,最终在Windows平台成功实现高效CPU推理。该方案显著提升了低配硬件的兼容性,为图像分类任务提供了稳定的部署解决方案。

深耕CV 353

在VS2008中创建自定义控件(九)添加属性

本文目的:1、创建一个自定义控件,这个控件就是我们常用的文字与文本框的组合,如下图所示。2、在自定义控件中添加属性。3、在RenderContents()方法中实现复杂一点的功能。    我们可以这样分析一下,如果创建的自定义控件要达到上图的效果,那么至少需要两个属性:第一个属性代表文本框前的文字;第二个属性代表文本框中的值。因此,我们的第一步,应该是为自定义控件添加属性。    在《在VS2008中创建自定义控件(六)创建完全自定义控件》中我们可以知道,当创建一个自定义控件时,VS会自动为该自定义控件添加

没有标题,只有问题 4289

深度剖析XY2-100与SL2-100协议:解锁激光打标核心技术密码

XY2-100和SL2-100是激光打标领域的两种核心控制协议。XY2-100协议采用串行通信,指令集简单,适合常规打标任务,具有成本优势;SL2-100协议支持更高速率(1Mbps以上),具备曲线插补等高级指令,在精密加工领域表现突出。两者的主要差异体现在数据传输(帧结构、速率)、指令集(功能、数量)、参数调节(范围、精度)和错误处理机制等方面。实际应用中,XY2-100适合简单图形的大批量生产,SL2-100更胜任复杂曲面的高精度加工。选择时需综合考虑打标需求、设备兼容性和成本因素,未来两种协议将持续优

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 957

在VS2008中创建自定义控件(一)创建网站项目和自定义控件项目

    首先声明,用户控件和自定义控件是不同滴。用户控件通常都是使用现有的控件进行组合,从而实现一些常用功能,比如说文本框、密码框、验证框和按钮的组合,从而实现一些常用的登录功能。而自定义控件不同,自定义控件一般由服务器控件的基类派生出来的类,更酷的是,自定控件可以和服务器控件一样,添到工具箱里,并从工具箱中直接拖到网页中使用。如下图所示。    在上图中所以看到工具箱中有一个名为“YundaoControls组件”的选项卡,该选项卡下的那两个控件就是自定义控件。那么,要怎么样才能创建自定义控件,又要怎么样

没有标题,只有问题 1万+

基于非接触式微波雷达设计的睡眠监控系统_323

本项目设计了一种基于非接触式微波雷达的睡眠监控系统,通过高精度的生理信号采集与分析,帮助用户全面了解自身的睡眠状态和健康状况。系统采用60GHz频段的R60ABD1毫米波雷达模块,实现对人体呼吸频率、心率、活动状态、体动幅度等参数的非接触式测量;结合MLX90614红外体温传感器,能够实时监测人体体温。此外,系统通过蜂鸣器报警和数据上云功能,及时向用户反馈异常生理指标,确保健康风险早期预警。数据通过ESP8266-WIFI模块上传至华为云物联网平台,用户可通过Android手机APP和Windows上位机远

498

Jenkins部署前后端分离项目最全图文教程(手把手教学)

最近Jenkins部署的热度比较高,于是就想出一篇关于我是如何使用Jenkins部署前后端分离项目的,本篇记录了我是如何一步一步去配置、搭建和部署的完整流程,每一行代码都进行了实测和讲解,通过图文的教学写成博客分享给大家!

黄团团的个人博客 4777

在VS2008中创建自定义控件(十五)创建控件时出错(未能对属性XXX设置XXX)的解决方法

    这是一个很讨厌的情况,讨厌到我都不知道是因为什么原因,刚才还好好的自定义控件,在使着使着会出现这么一个问题,如下图所示。    一开始,一直以为是我的错,结果,后来发现是微软的错。最后的解决方式是,去http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=KB957507&DownloadId=5273下载VS90SP1-KB957507-v2-CHS-x86.exe补丁,或直接http://www.

没有标题,只有问题 5781

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

在VS2008中创建自定义控件(六)创建完全自定义控件

    在前面介绍的创建自定义控件是直接继承了TextBox服务器控件的自定义控件,事实上,asp.net中允许创建一个完全的自定义控件,也就是不从任何一个服务器控件中继承的自定义控件。    首先,我们在自定义控件项目中添加一个新的“asp.net服务器控件”,命名为“myCustomControl.cs”,如下图所示。    添加完之后,VS会自动为myCustomControl.cs添加一些代码,如下图所示:    从上图中我们可以看出,在默认情况下,VS让自定义控件继承了WebControl类,这个

没有标题,只有问题 4745

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

在VS2008中创建自定义控件(二)创建自定义控件并将其添加到工具箱中

本文目的: 1、创建一个自定义控件。 2、将自定义控件添加到工具箱中,以便调用。 本文的最终结果如下图所示。           接上文《在VS2008中创建自定义控件(一)创建网站项目和自定义控件项目》,下图是添加了自定义控件项目后“解决方案资源管理器”中的结果。         从上图中我们可以看出,在创建项目时,

biyusr的专栏 7151

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

在VS2008中创建自定义控件(五)修改tagprefix

    在《在VS2008中创建自定义控件(三)在网页中添加自定义控件》介绍过,将自定义控件拖到网页中时,VS会自动添加@Register 指令将别名与命名空间和类名关联起来。对于开发者来说,这很方便,可是在默认情况下,VS会将别名添加成“cc1”、“cc2”等别名,而这些别名既不好看,又不规范。那么我们可不可以指定别名呢?    答案是肯定的,我们只要打开自定义控件的cs文件,然后在命名空间上加上以下即可。[assembly: TagPrefix("YundaoControls", "myControls

没有标题,只有问题 3607

如何在VS2008中将HTML控件转换为服务器控件

<br />先说说VS2005中如何装换<br />           在VS2005中可以直接用鼠标选择HTML控件再按右键选择“作为服务器控件运行”属性即OK啦。<br /> VS2008<br />     需要在源代码中添加runat=“server”实现<br />     例如:<br />        <div id="div1" runat="server"><br />         </div><br /> <br /> <br />PS:对于这个做法有点对微软不满意,在VS20

多了特 的专栏 2530

html5 for vs2008插件,Chart 控件 for vs2008的安装

近日开始学习和研究这个新奇的控件。一.什么是图表上面这张表中所示的就是一张图表的所有组成。从中我们可以看出,图表的五大元素为:附注(Annotations)、图表区(ChartAreas)、图例(Legends)、列(Series)、标题(Titles)。二.如何把 Chart控件添加到VS2008工具箱这三个文件可以从微软网站下载到或是在我的附件中下载。安装的顺序图中排列顺序,其中 MSChar...

weixin_35126480的博客 393

在VS2008中创建自定义控件(十三)添加内镶属性

    在添加了可折叠的属性之后,我们可以重写RenderContents()方法,以便输出唐诗的作者信息,如以下代码所示。/// /// 呈现控件 /// /// protected override void RenderContents(HtmlTextWriter output) { string OutText = ""; //诗名 if (!String.IsNullOrEmpty(Title)) { OutText +=

没有标题,只有问题 2750

在VS2008中创建自定义控件(十)添加枚举型属性

本文目的:在自定义控件中添加一个枚举型的属性    什么是枚举型的属性?看一下下图就明白了。    上图是一个TextBox服务器控件的BorderStyle属性。在属性对话框中,该属性值是通过下拉列表框的形式出现的,我们只能选择下拉列表框中的选项,不能自己输入内容——这就是枚举型属性的特点。    现在假设有一个自定义控件,这个自定义控件用于输入图书相关的信息,图书信息中有一项是图书种类,这个图书种类的只能在小说、青春、历史、保健四个选项中选择。那么,这个图书种类就是一个枚举型的属性。    首先,我们在

没有标题,只有问题 5272

在VS2008中创建自定义控件(四)为自定义控件添加默认值

    在前面,我们添加了一个自定义控件,为了方便起见,这个自定义控件仅仅只是继承了TextBox服务器控件的属性和方法,并没有其他功能。事实上,添加的自定义控件不可能这么没有个性的,下面,我们为自定义控件添加一个默认值。    打开yundaoTextBox.cs文件,添加一个构造函数,如下所示。public yundaoTextBox() { //设置属性的缺省值 this.Text = "测试"; }     在这个构造函数中,this代表的是自定义控件本身,而Text也就是继

没有标题,只有问题 4076
上一篇: 在VS2008中创建自定义控件(七)自定义控件的中常用到的特性
下一篇: 在VS2008中创建自定义控件(九)添加属性
smallfools
博客等级 码龄24年 176粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值