Custom Properties on a Control with Serialization and Reset:
public class MyLabel : Label
{
public MyLabel()
{
}
private static readonly string txtExtendedDefaultValue = "Extended Text Property";
private string txtExtended = txtExtendedDefaultValue;
public string TxtExtended
{
get { return txtExtended; }
set { txtExtended = value; }
}
void ResetTxtExtended()
{
txtExtended = txtExtendedDefaultValue;
}
bool ShouldSerializeTxtExtended()
{
return txtExtended != txtExtendedDefaultValue;
}
private string txtSimple = "Simple Text Property";
[DefaultValue("Simple Text Property")]
public string TxtSimple
{
get { return txtSimple; }
set { txtSimple = value; }
}
}