この問題を解決するために数日を費やしています。以下のように、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 の enum プロパティを InputType.Enum2 に変更した場合、UserLetterCase プロパティを LetterCase.Enum4 に変更する必要があるということです。Visual Studio.net 2010 を使用すると、これらすべてが設計時に発生するはずです。何かアイデアはありますか?