今天做了两个自定义控件,之前用WPF也做过,但是感觉跟今天的不太一样。首先是在项目中建了一个UserContral的控件界面,把需要的控件拖到里面,再给按钮添加事件。我们公司的控件都是买的Dev Express控件组,个人感觉效果挺好的,很多能够都比较实用也很方面,功能很强大,毕竟是花钱的东西。但是有一点不好,添加事件的时候不能单纯的靠双击,有时候双击可以在后台添加代码,但不会在designer.cs设计器中添加事件的声明,也就导致双击界面的控件不能自动定位到后台的代码,所以要自己手动添加。   

  这两个控件其实是从一个大模块中抠出来的,由于大模块代码太多,没仔细看,拷贝了好多无用的代码。VS可以设置安全级别,级别4是最高的,这时候当你申明了变量赋了初值而没有使用,或者申明了变量没有赋初值,都会报错,如果要把提示的错误注释掉,那得注释一大堆代码,如果不注释又编译不通过,很烦。最后还是乖乖的把安全级别降低了。 只有当解决方案生成成功,自定义控件才能在工具箱中显示并使用。代码修改完后生成成功,当把自定义控件拖到大模块中时报错了,未能找到BaseHttpCommom",自定义控件好像在web.config文件中配置的,跟WCF有关联,具体的没细看。其他的控件都可以用,就这个不行那就肯定不是配置文件的问题,还是控件后台代码本身的问题,只好逐个方法注释掉来排查。最后锁定在BandData()和InitContral()这两个方法中,原因大概是拖动自定义控件的时候(在设计状态下使用)它也会加载和调用控件中的代码,用DesignMode判断当其为FALSE的时候才调用代码,这样也不行,只好暂时注释掉接着调试另一个控件。

  另一个控件可以拖到界面上,生成也是成功的,当执行到此控件的构造函数时就会在designer.cs中报错"未将对象引用到实例",之前认为designer.cs文件是系统自动生成的不会有问题,通过这几次的错误看出,designer还是需要人工来维护的。于是在控件的designer.cs文件中加了此控件的声明,实例化后可以运行了。

   在大模块中调用其实很简单,自定义控件和普通的控件一样,代码都在自定义控件的后台写好了,直接拖到界面上就可以用了,当然要是给其赋值的话还需要用构造函数传参数或实例化后给其属性赋值。自定义控件就是一个类,一个控件类,使用时new一下就可以得到它内部的方法和属性。明天周六还要去加班,把大模块中的冗余代码删了,再把新添加的控件和已有的事件代码关联起来,争取上午搞定,哎,苦逼的程序员。

web自定义控件UserControl的更多相关文章

  1. asp.net web 自定义控件

    0.调用代码 protected override void Page_Load(object sender, EventArgs e) { //给基类服务接口复制,可不付 if (IsPostBac ...

  2. WPF之路——用户控件对比自定义控件UserControl VS CustomControl)

    将多个现有的控件组合成一个可重用的“组”. 由一个XAML文件和一个后台代码文件. 不能使用样式和模板. 继承自UserControl类. 自定义控件(扩展) 在现有的控件上进行扩展,增加一些新的属性 ...

  3. [转]在WPF中自定义控件 UserControl

    在这里我们将将打造一个UserControl(用户控件)来逐步讲解如何在WPF中自定义控件,并将WPF的一些新特性引入到自定义控件中来.我们制作了一个带语音报时功能的钟表控件, 效果如下: 在VS中右 ...

  4. Asp.Net 自定义控件实现图片的上传,浏览,删除功能

    4月的时候公司比较闲,就想着自己做点东西,其实主要是为了更加熟悉.Net,毕竟接触的时间不长,趁着有时间想提高提高.不过当我做到图片上传这个功能的时候,就有些停滞不前了,连续写了两天也达不到自己想要的 ...

  5. 033. asp.netWeb用户控件之二将页面转换成web控件和使用Web控件显示热点新闻

    访问Web用户控件的属性 ASP.NET提供的各种服务器控件都有其自身的属性和方法,程序开发人员可以灵活地使用服务器控件中的属性和方法开发程序.在用户控件中,程序开发人员也可以自行定义各种属性和方法, ...

  6. ASP.NET的一次奇遇:UserControl写成Control引发的w3wp进程崩溃

    昨天在写代码中一不小心将UserControl写成了Control,将原来应该继承自System.Web.UI.UserControl的用户控件,比如下面的BlogStats: <%@ Cont ...

  7. [转]Oracle分页之二:自定义web分页控件的封装

    本文转自:http://www.cnblogs.com/scy251147/archive/2011/04/16/2018326.html 上节中,讲述的就是Oracle存储过程分页的使用方式,但是如 ...

  8. pages 元素(ASP.NET 设置架构)web.config 详解

    pages 元素(ASP.NET 设置架构)    buffer="[True|False]"   enableEventValidation="[True|False] ...

  9. ZLComboBox自定义控件开发详解

    [引言]距离上一回写博客已经有一些时日了,之前的爱莲iLinkIT系列主要是讲解了如何用NodeJS来实现一个简单的“文件传送”软件,属于JavaScript中在服务器端的应用. 今天,我们就回归到J ...

随机推荐

  1. NFS安装过程

    操作环境:linuxmint做客户端--centos7(虚拟机)做服务器 1.先安装需要的包: centos7中:yum install rpcbind && yum install ...

  2. Python入门-多行语句

    1. Python语句中一般以新行作为为语句的结束符. 但是我们可以使用斜杠( \)将一行的语句分为多行显示. 2. 语句中包含[], {} 或 () 括号就不需要使用多行连接符. days = [' ...

  3. style不同取值对应的日期、时间格式

    from : http://www.cnblogs.com/Gavinzhao/archive/2009/11/10/1599690.html sql server2000中使用convert来取得d ...

  4. javascript权威指南笔记--javascript语言核心(六)

    通过ECMAScript 3创建的属性都是可写的.可枚举的.可配置的. 在ECMAScript 5中,数据属性的4个特性分别是它的值.可写性.可枚举性.可配置性.存取器属性的特性是读取.写入.可枚举性 ...

  5. T-SQL Apply的用法

    SQL Server 2005 新增 cross apply 和 outer apply 联接语句,增加这两个东东有啥作用呢? 我们知道有个 SQL Server 2000 中有个 cross joi ...

  6. 表单美化-原生javascript和jQuery多选按钮(兼容IE6)

    前些天我们讲了下单选按钮的美化今天来做表单元素多选按钮的美化.我们的想法是:利用多选按钮是否被选中和是否不给选择的特性来为按钮的父元素添加对应的样式,就是说用什么的样式是由按钮的状态来决定. 用到的图 ...

  7. bootstrap学习笔记<五>(表单一)

    表单 bootstrap为表单提供三种样式:默认表单,水平表单,内联表单. <form class="form-horizontal" role="form&quo ...

  8. Python学习(5)条件语句

    目录 Python 条件语句 Python 简单的语句组 Python 条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了 ...

  9. Python学习(2)基本语法

    目录 交互式编程 脚本式编程 Python 标识符 Python保留字符 行和缩进 多行语句 Python 引号 Python注释 Python空行 python的输入和输出 命令行参数 交互式编程 ...

  10. mysql 并发控制

    1.多个线程同时修改数据,存在数据不一致的情况,也就是并发控制的问题.2.mysql提供读锁和写锁,读锁之上可以再加读锁,不能加写锁,而写锁之上不能加任何锁.也就是说,读锁是共享的,写锁是排他的.3. ...