自定义控件的属性

时间:2011-12-07 14:55:26

标签: asp.net visual-studio-2010 custom-controls

我需要在我的自定义控件中添加一个属性来编写&从数据库读取值,但是当用户从属性框更改属性值时,它会将其作为我的控件的属性写在我的页面上。

如何阻止Visual Studio在页面上写入属性值?

1 个答案:

答案 0 :(得分:0)

我认为Control类的DesignMode属性是您正在寻找的:

    public string ReadWriteDBValue 
    {
        get
        {
            if (!this.DesignMode)
                return GetValueFromDB();
            else
                return string.Empty;
        }
        set 
        {
            if (!this.DesignMode)
                SetValueFromDB(value);

        }
    }

在某些情况下,DesignMode属性无效。这篇文章详细介绍了DesignMode属性:

http://dotnetfacts.blogspot.com/2009/01/identifying-run-time-and-design-mode.html

所以在过去我将DesignMode属性与System.ComponentModel.LicenseManager.UsageMode属性结合使用。

if (!this.DesignMode && System.ComponentModel.LicenseManager.UsageMode != LicenseUsageMode.Designtime)
{
     //insert code that you do not want to be performed at design time.
}