2010-07-26 27 views
11

Tengo un formulario de Windows que establece la propiedad de texto en un cuadro de texto para la de una variable de cadena. Cuando se ejecuta el formulario, tiene todo el texto en el cuadro de texto seleccionado. Necesito tratar de descubrir cómo evitar que eso suceda. Probé elAnular la selección de texto en un cuadro de texto

DeslectAll() 

método en el cuadro de texto pero eso no parece funcionar. También probé

txtBox.SelectNextControl(txtCostSummary, true, false, true, true); 

pero yo tipo de estaba adivinando en lo que los parametros necesarios para ajustarse a, ajustar ellos no parece hacer una diferencia. Para entender realmente lo que estoy haciendo, voy a dejar un poco más claro cómo está sucediendo todo esto.

public Form1() 
{ 
    Apple a = new Apple(); 
    a.IwantThisText = "Item 1: " + 50.00 + "\r\n"; 
    txtBox.Text = a.IwantThisText; 
} 

Class Apple 
{ 
    private string iWantThisText; 
    public string IwantThisText 
    { 
    get { return iWantThisText; } 
    set { iWantThisText += value; } // Appends what was there before 
    } 
} 

Todo funciona bien, excepto la parte donde se ha impreso la información en el cuadro de texto, pero todo el texto en el cuadro de texto está seleccionado, lo cual no es lo que pensé que sucedería, ni es lo que quiero que suceda .

¡Gracias por cualquier idea!

Respuesta

37

Prueba esto:

txtBox.Select(0, 0); 
+0

Eso hizo el truco, gracias! =) – Froz

+2

Entonces debes aceptar esta respuesta. –

+1

+1 a lucky 13. Tal vez @Froz aceptará la respuesta ahora ;-) – Arrow

4

Prueba esto:

//remove focus from control. 
Apple a = new Apple();  
a.IwantThisText = "Item 1: " + 50.00 + "\r\n";  
txtBox.Text = a.IwantThisText; 

// Add this 
txtBox.TabStop = false; 
+1

+1 porque no sabía que la propiedad TabStop resolvería esto. –

+0

Configurar la propiedad .TabStop como falso en mi cuadro de texto de RO era todo lo que necesitaba. Muy bonito, gracias. – jinzai

10

Sé que es una vieja pregunta, pero he encontrado que esto funciona también:

txtBox.SelectionLength = 0; 

Esto podría ser preferible a SteveCav's Select(0,0) ya que no mueve el punto de inicio de la selección.

Cuestiones relacionadas