今天做了两个自定义控件,之前用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. SQL collate

    摘自:http://www.cnblogs.com/window5549-accp/archive/2009/10/03/1577682.html 我们在create table时经常会碰到这样的语句 ...

  2. return、 return false的用法

    1. return返回null,起到中断方法执行的效果,只要不return false事件处理函数将会继续执行,表单将提交2. return false,事件处理函数会取消事件,不再继续向下执行.比如 ...

  3. iOS - Swift 基本语法

    前言 Swift 全面支持 Unicode 符号. Swift 中的定义和实现是在同一个单元中的,通常一个 Swift 源代码单文件是以 ".Swift" 结尾的. Swift 不 ...

  4. equals()和hashcode()

    默认调用的情况: 1.集合在存放对象时,首先判断hashcode(),再判断equals如果都是true,认为是相同的两个元素不进行存储. 删除对象时,将从hashcode指定位置查找再删除 2.在h ...

  5. 09 高效的PL/SQL程序设计

    程序包 Package 断开了依赖链 实验依赖关系: <1> 首先不使用包 -- 创建表 CREATE table t (x int); -- 创建视图 create view v as ...

  6. Target runtime Apache Tomcat v7.0 is not defined.

    打开项目,找到.settings--->org.eclipse.wst.common.project.facet.core 修改这个文件中: <?xml version="1.0 ...

  7. Java源码初学_AbstractList&AbstractCollection

    一.AbstractCollection抽象类:(提供了Collection接口的骨干实现,以减少实现接口所需要的工作) 1.contains方法 contains方法,通过迭代器对于列表的每一个元素 ...

  8. (三)主控板生级uboot与内核

    一.升级uboot 把我的电脑增加一个192.168.1.3的ip,方便升级boot. 1.连接串口,连接网口到GE1; 2.登陆电脑后到D:\MTG3000MAIN\first目录打开tftp32 ...

  9. iOS开发之 在release版本禁止输出NSLog内容

    因为NSLog的输出还是比较消耗系统资源的,而且输出的数据也可能会暴露出App里的保密数据,所以发布正式版时需要把这些输出全部屏蔽掉. 我们可以在发布版本前先把所有NSLog语句注释掉,等以后要调试时 ...

  10. hdu 5713(状态压缩DP)

    要进行两次dp, 第一个,dp[i],1<=i<=(1<<n) 其中用i的二进制形式表示已选择的点. dp[i] 用来保存i中的点构成一个连通块,边集多少种可能. 转移方程: ...