如何使用vs.net在设计时更改公共属性值
本文关键字:属性 vs 何使用 net | 更新日期: 2023-09-27 18:02:26
我花了好几天的时间来解决这个问题。我有一个自定义控件继承自System.Web.UI.WebControls.TextBox如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.ComponentModel;
namespace Test
{
[ToolboxData("<{0}:MyCustomTextBox runat=server />")]
public class MyCustomTextBox : System.Web.UI.WebControls.TextBox
{
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[RefreshProperties(RefreshProperties.All)]
[DefaultValue(InputType.Enum1)]
[Category("Appearance")]
public InputType UserInputType { get; set; }
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[RefreshProperties(RefreshProperties.All)]
[DefaultValue(LetterCase.Enum3)]
[Category("Appearance")]
public LetterCase UserLetterCase { get; set; }
}
public enum InputType { Enum1, Enum2 }
public enum LetterCase { Enum3, Enum4 }
}
我已经发现了一些系统。ComponentModel属性。
我想做的是,如果一个用户将UserInputType的enum属性更改为InputType。那么UserLetterCase属性应该改为LetterCase.Enum4。这些都应该在使用visual studio.net 2010的设计阶段发生。什么好主意吗?
不是将它们作为自动属性实现,而是创建支持字段并在set
部分中进行必要的更改:
private InputType _userInputType;
public InputType UserInputType
{
get
{
return _userInputType;
}
set
{
_userInputType = value;
if (value == InputType.Enum2)
UserLetterCase = LetterCase.Enum4;
}
}