2010-05-21 18 views
19

Tengo un control con un TextBox interno. Quiero establecer una relación directa entre la propiedad Text del UserControl y la propiedad Text del TextBox. Lo primero que noté es que el texto no se mostraba en las Propiedades del UserControl. Luego agregué el atributo Navegable (verdadero).Propiedad del texto en un UserControl en C#

[Browsable(true)] 
public override string Text 
{ 
    get 
    { 
     return m_textBox.Text; 
    } 

    set 
    { 
     m_textBox.Text = value; 
    } 
} 

Ahora, el texto se mostrará durante un tiempo, pero luego se eliminará. Esto se debe a que la información no se escribe automáticamente en el archivo xxxx.Designer.cs. ¿Cómo se puede cambiar este comportamiento?

Respuesta

35

necesita más atributos:

[EditorBrowsable(EditorBrowsableState.Always)] 
[Browsable(true)] 
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] 
[Bindable(true)] 
public override string Text 
+0

Funcionó perfectamente. Gracias. – yeyeyerman

12

reflector es una herramienta crucial para un desarrollador .NET. Es inmediatamente obvio lo que hay que hacer cuando se lo utiliza para ver la propiedad UserControl.Text:

[Bindable(false), EditorBrowsable(EditorBrowsableState.Never), Browsable(false), 
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 
public override string Text 
{ 
    get 
    { 
     return base.Text; 
    } 
    set 
    { 
     base.Text = value; 
    } 
} 

Ho mostró que lo que hay que hacer para cancelar estos atributos, lástima que no se mostró cómo se enteró. Reflector es gratis, descárguelo de redgate.com o consulte las alternativas aquí: Something Better than .NET Reflector?

+0

Hans, +1 por el consejo. Sin embargo, tengo que aceptar la respuesta Ho, ya que también es correcta y fue escrita antes. ¡Gracias! – yeyeyerman

Cuestiones relacionadas