嗨,朋友们,
我正在开发从TextBox继承的C#组件。一个简单的组件,仅包含验证和掩码。
问题是我有一个数据类型属性,具有几个可能的属性(CPF,CNPJ,RG,投票标题等),而程序员使用的常规属性不想启用验证或掩码。在这种情况下,该组件的行为就像普通的TextBox一样,只是具有额外的组件设计选项。
因此,我希望对“常规数据类型”属性禁用“布尔验证”和“掩码”属性,而对于其他选项则启用[启用(true)]。
我以前从未从事过设计时开发工作,因此我不知道该怎么做。
我附上一张可以帮助您了解我所需要的图像。
在其中启用了Mask属性以进行更改。我需要的是未启用它,除非“数据类型”属性具有“常规”以外的属性。
我尝试为Validation属性创建下面的接口(该属性具有相同的作用域,并且必须具有相同的Mask行为(根据代码,我尚未将其放在Interface中,它在外部),但是这样,Validation属性不会出现在属性面板中,如您在所附图像中看到的那样。
我正在开发从TextBox继承的C#组件。一个简单的组件,仅包含验证和掩码。
问题是我有一个数据类型属性,具有几个可能的属性(CPF,CNPJ,RG,投票标题等),而程序员使用的常规属性不想启用验证或掩码。在这种情况下,该组件的行为就像普通的TextBox一样,只是具有额外的组件设计选项。
因此,我希望对“常规数据类型”属性禁用“布尔验证”和“掩码”属性,而对于其他选项则启用[启用(true)]。
我以前从未从事过设计时开发工作,因此我不知道该怎么做。
我附上一张可以帮助您了解我所需要的图像。
在其中启用了Mask属性以进行更改。我需要的是未启用它,除非“数据类型”属性具有“常规”以外的属性。
我尝试为Validation属性创建下面的接口(该属性具有相同的作用域,并且必须具有相同的Mask行为(根据代码,我尚未将其放在Interface中,它在外部),但是这样,Validation属性不会出现在属性面板中,如您在所附图像中看到的那样。
C#:
#region TESTES
public interface IReadOnlyProperties
{
bool ValidationPropertie { get; set; }
}
public class IsReadOnly : IReadOnlyProperties
{
private bool _validationStatus;
[ReadOnly(true)]
[Browsable(true)]
[DisplayName("Validation")]
[DefaultValue(false)]
public bool ValidationPropertie
{
get { return _validationStatus; }
set { _validationStatus = value; }
}
//public bool ValidationPropertie { get; set; }
}
public class IsNotReadOnly : IReadOnlyProperties
{
private bool _validationStatus;
[ReadOnly(false)]
[Browsable(true)]
[DisplayName("Validation")]
[DefaultValue(false)]
public bool ValidationPropertie
{
get { return _validationStatus; }
set { _validationStatus = value; }
}
//public bool ValidationPropertie { get; set; }
}
public void TESTE()
{
MessageBox.Show("Entrou em Teste");
IReadOnlyProperties instance = null;
if (DataType != myT_TextBox_Component._DataType.Geral)
{
instance = new IsReadOnly();
}
else
{
instance = new IsNotReadOnly();
}
}
#endregion TESTES
C#:
[B][/B]
private bool _maskStatus;
[Browsable(true)]
[DisplayName("Mask")]
[DefaultValue(false)]
public bool MaskPropertie
{
get { return _maskStatus; }
set { _maskStatus = value; }
}