在自定义控件中怎样判断设计时还是运行时?

DotNetHappy 2004-10-28 08:13:58
本人在开发自定义控件时,遇到一个问题,就是在构造函数中的代码无论是设计时还是运行时都会执行。而我确希望只在运行时执行。那么,我该怎样判断其设计时还是运行时呢?

先谢谢啦!
...全文
317 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
DotNetHappy 2004-10-29
谢谢君仁!
回复
mingchao123 2004-10-28
给你个详细的

Imports System.ComponentModel
Imports System.Web.UI

<DefaultProperty("Text"), ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")> Public Class WebCustomControl1
Inherits System.Web.UI.WebControls.WebControl

Dim _text As String

<Bindable(True), Category("Appearance"), DefaultValue("")> Property [Text]() As String
Get
Return _text
End Get

Set(ByVal Value As String)
_text = Value
End Set
End Property

Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)

If Site Is Nothing Then
output.Write("不在设计器中")
Else
output.Write("在设计器中")
End If
End Sub

End Class

编译后把他从工具箱中拖到测试页面上就会看到结果
回复
mingchao123 2004-10-28
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemComponentModelISiteClassDesignModeTopic.htm
.DesignMode 属性 [Visual Basic]请参见
ISite 接口 | ISite 成员 | System.ComponentModel 命名空间 | ISite 成员(Visual J# 语法) | C++ 托管扩展编程
要求
平台: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列, .NET Framework 精简版 - Windows CE .NET
语言
C#

C++

JScript

Visual Basic

全部显示
确定组件在由类实现时是否处于设计模式。

[Visual Basic]
ReadOnly Property DesignMode As Boolean

[C#]
bool DesignMode {get;}

[C++]
__property bool get_DesignMode();

[JScript]
function get DesignMode() : Boolean;

属性值
如果组件处于设计模式,则为 true;否则为 false。

备注
设计模式指示器存储在 ISite 中;因此,如果 Component 没有与其关联的 ISite,则该属性始终为 false。

回复
kangxidadi 2004-10-28
o?没有自定义过控件。嘿嘿,我要学。
回复
DotNetHappy 2004-10-28
当你将自定义控件拖放到某窗体时,就会执行一些代码,如构造函数,Load事件处理程序中的代码等等。
回复
kangxidadi 2004-10-28
不明白你的意思,设计时还能执行代码啊。我觉得自己好弱啊。
回复
DotNetHappy 2004-10-28
怎么好像每人回答啊?
回复
相关推荐
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2004-10-28 08:13
社区公告

让您成为最强悍的C#开发者