如何在.NET中调试设计时(design-time)控件(上)

原创 2003年05月13日 11:48:00

说明:本文翻译自msdn网站上的《Debugging Design-Time Controls》一文。文章的原作者是Steve Lasker。

 

摘要:逐步介绍了如何在VS.NET Designer环境下调试Design-Time的自定义控件,同时描述了在使用设计界面操作控件时可能发生的一系列事件。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

介绍

 

在自定义控件开发过程中的一个重要部分,是检查和调试代码的能力。当在VS.NETDesign-Time环境中使用控件或者Windows Form时,即使在你的项目并没有运行(run)的情况下,你的代码仍能够被执行(execute)。这一点使得如何调试代码成为一个挑战。如果你曾经创建过任何会在Design-Time用到的对象,那么这篇文章将告诉你,当你在VS.NETdesigner中使用这些对象时,如何发现错误并调试代码。我同时也将描述在使用设计界面操作控件时有可能发生的一系列事件。

 

为了展示当你改变控件的值,或者拖一个控件到设计界面时如何检查错误并调试代码,我们将创建一个基于WinForm的例子,它有一个string属性。当我们改变了属性的值时,我们将步入调试器中。

 

建立环境

第一步是建立一个容纳我们的代码的环境,我们将创建:

·一个空的解决方案来容纳我们的工程

·一个控件库来容纳我们的自定义控件

·一个WinForm程序来使用我们的自定义控件

 

建立空解决方案

1.   File菜单中点击New,然后选择Blank Solution。

2.   Solution命名为DesignTimeDebugging

3.   将此Solution放在c:/ DesignTimeDebugging。如下图:

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />CSDN_Dev_Image_2003-5-122211280.gif

 

创建空间库

由于我们的目标是示范如何调试而非如何创建自定义控件,因此我们不关心控件创建的细节。我们将创建一个具有一个属性的简单的Form

 

建立控件工程

1.   File菜单中点击New,然后点击Project

2.   在左边的窗口里选Visual C# Projects

3.   在右边的窗口里选Windows Control Library

4.   将控件库命名为Immedient.Windows.Forms,注意我们保持与微软相同的命名规则,唯一不同的是我们用“Immedient”代替了“System”。这样就定义了一个唯一的名字空间。

5.   删除UserControl1

CSDN_Dev_Image_2003-5-122211282.gif

 

添加一个新的Form

1.   右击Control Library工程,点Add,然后点Add Windows Form

2.   Form命名为“Form”。

3.   在类定义中添加如下代码:

C#

private string _myText = "Hello";

/// <summary>

/// A Custom property used for this silly sample

/// </summary>

/// <value>A value of no meaning</value>

[

   Description("A Custom property used for this silly sample"),

   DefaultValue("Hello"),

   Category("Appearance")

]

public string MyText

{

   get{return _myText;}

   set

   {

      if(_myText != value)

      {

         _myText = value;

      }

   }

}

代码Description("A Custom property used for this silly sample")将在属性页的下方为你的属性添加描述。这里的文字通常与Xml注视文档中的相同。

CSDN_Dev_Image_2003-5-122211284.gif

DefaultValue("Hello")定义了我们的属性的缺省值。如果属性的值与DefaultValue不同,属性页将以黑体显示该值。同时,VS.NET也将在InitializeComponent()中生成设置该值的代码。这一点对于继承非常好用。如果没有派生类改变属性,那么它们都将继承来自基类的改变。

Category("Appearance")被用来将属性在属性页中排序。

 

待续……

如何在.NET中调试设计时(design-time)控件(上)

  • zgqtxwd
  • zgqtxwd
  • 2008年04月24日 12:02
  • 86

如何在.NET中调试设计时(design-time)控件(下)

创建应用自定义控件的WinForm工程1.   在File菜单中点击New,然后点击Project。2.   在左边的窗口中选择Visual C# Projects。3.   在右边的窗口中选择Win...
  • sam1111
  • sam1111
  • 2003年05月13日 12:01
  • 2003

在.NET中调试设计时(design-time)控件

介绍   在自定义控件开发过程中的一个重要部分,是检查和调试代码的能力。当在VS.NET的Design-Time环境中使用控件或者Windows Form时,即使在你的项目并没有运行(run)的情况下...
  • qpl007
  • qpl007
  • 2005年01月07日 14:10
  • 1112

.net vs2010 视图aspx页面创建控件时出错 未将对象引用设置到对象的实例

页面中创建控件时出错未将对象引用设置到对象的实例,但是运行是没有问题的。 第一步,首先关闭aspx页面 第二步,在单击项目右击,选择“清理解决方案” 第三步,然后在打开aspx页面,就可以看...
  • justflyhigh
  • justflyhigh
  • 2012年05月29日 10:11
  • 2116

VS2010中ADO控件"未能实例化activex控件 因为这需要设计时授权"解决办法

在 REGEDIT HKEY_CLASSES_ROOT\Licenses = Licensing: Copying the keys may be a violat...
  • linatdy
  • linatdy
  • 2014年10月09日 11:05
  • 2794

如何调试aspx程序

1,后台程序调试只需要打上断点,然后
  • yuelenglingxi
  • yuelenglingxi
  • 2014年05月07日 09:20
  • 1481

运行时动态设置并加密App.Config中的数据库连接字符串

  App.config中的数据库连接字符串,是在Settings.settings同步过来的。后者在设计时支持数据集DataSet的设计,但运行时不能更改,可以更改App.config的连接字符串,...
  • mubingyun
  • mubingyun
  • 2008年10月06日 10:25
  • 3627

未能实例化这个ActiveX控件"****",因为这需要设计时授权”

1 Lic文件也要随ocx一起发布才行。 ocx有代码访问Lic文件,只要保证这段代码没问题就行,一般发布时,lic安装到system下 2 我把ocx里面得到序列号的部分直接返回true,然后再编...
  • wl_fln
  • wl_fln
  • 2013年12月03日 10:25
  • 3587

.NET 设计时示例

ASPX 面页绑定数据时,有些绑定方法是设计时所不支持的,具体规律还不得而知,以下是较常用的几种较难的方式,仅供参考.")>Id=TR_...
  • sicon2003
  • sicon2003
  • 2005年07月26日 17:22
  • 1834

asp.net中image控件的使用

Image控件当没有图片时,显示"红色的X" 不够友好,可以设置其AlternateText属性,也可以显示指定的图片1.普通显示string str ="~/img/"+int.Parse(Text...
  • lsd123
  • lsd123
  • 2008年12月29日 12:49
  • 5499
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何在.NET中调试设计时(design-time)控件(上)
举报原因:
原因补充:

(最多只允许输入30个字)