我花了几天的时间来解决这个问题。我有一个继承自 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 }
}
我发现了一些 System.ComponentModel 属性。
我想要做的是,如果用户将 UserInputType 的枚举属性更改为 InputType.Enum2,那么 UserLetterCase 属性应该更改为 LetterCase.Enum4。使用visual studio.net 2010时,这些都应该在设计时发生。有什么想法吗?