2010-07-26 6 views
11

J'ai un formulaire Windows qui définit la propriété de texte dans une zone de texte à celle d'une variable de chaîne. Lorsque le formulaire est exécuté, il a tout le texte dans la zone de texte sélectionnée. Je dois essayer de comprendre comment éviter que cela se produise. J'ai essayé leDésélection de texte dans une zone de texte

DeslectAll() 

méthode sur la zone de texte, mais cela ne semble pas fonctionner. J'ai aussi essayé

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

mais je genre de devinais sur ce que les paramters devaient être mis à, les peaufinage ne semble pas faire une différence. Pour vraiment comprendre ce que je fais, je vais faire un peu plus clair sur comment tout cela se passe.

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

Tout fonctionne bien, sauf la partie où il a imprimé les informations contenues dans la zone de texte, mais tout le texte dans la zone de texte est sélectionné, ce qui est pas ce que je pensais que se passerait-il, ni ce que je veux arriver .

Merci pour vos idées!

Répondre

37

Essayez ceci:

txtBox.Select(0, 0); 
+0

Cela a fait l'affaire, merci! =) – Froz

+2

Ensuite, vous devriez accepter cette réponse. –

+1

+1 à la chance 13. Peut-être que @Froz acceptera la réponse maintenant ;-) – Arrow

4

Essayez ceci:

//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 parce que je ne savais pas que la propriété TabStop résoudrait cela. –

+0

La définition de la propriété .TabStop false sur ma zone de texte RO était tout ce dont j'avais besoin. Très bien merci. – jinzai

10

Je sais que c'est une vieille question, mais je trouve que cela fonctionne aussi:

txtBox.SelectionLength = 0; 

Cela pourrait être préférable à Select(0,0) de SteveCav car il ne bouge pas le point de départ de la sélection.

Questions connexes