2010-07-26 12 views
11

Ho un modulo di Windows che imposta la proprietà di testo in una casella di testo a quella di una variabile di stringa. Quando il modulo viene eseguito, ha tutto il testo nella casella di testo selezionata. Devo cercare di capire come evitare che ciò accada. Ho provato ilDeseleziona il testo in una casella di testo

DeslectAll() 

metodo sulla casella di testo ma quello non sembra funzionare. Ho anche provato

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

ma io ero tipo di indovinare su ciò che i paramters necessari per essere impostate su, tweaking loro non sembra fare la differenza. Per capire veramente quello che sto facendo, renderò un po 'più chiaro come tutto ciò stia accadendo.

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 
    } 
} 

Tutto funziona bene, tranne la parte in cui essa ha stampato le informazioni nella casella di testo, ma tutto il testo nella casella di testo è selezionata, che non è quello che ho pensato che sarebbe accaduto, né è quello che voglio che accada .

Grazie per qualsiasi idea!

risposta

37

Prova questo:

txtBox.Select(0, 0); 
+0

Questo ha fatto il trucco, grazie! =) – Froz

+2

Quindi dovresti accettare questa risposta. –

+1

+1 alla fortuna 13. Forse @Froz accetterà la risposta ora ;-) – Arrow

4

Prova questo:

//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 perché non sapevo che la proprietà TabStop avrebbe risolto questo problema. –

+0

L'impostazione della proprietà .TabStop false sulla mia casella di testo RO era tutto ciò di cui avevo bisogno. Molto bello grazie. – jinzai

10

Lo so che è una vecchia questione, ma ho scoperto che questo funziona anche:

txtBox.SelectionLength = 0; 

Questo potrebbe essere preferibile a SteveCav Select(0,0) in quanto non sposta il punto di inizio selezione.

Problemi correlati