2010-07-26 30 views
11

Ich habe ein Windows-Formular, das die Texteigenschaft in einem Textfeld auf die einer Zeichenfolgenvariablen setzt. Wenn das Formular ausgeführt wird, ist der gesamte Text in der Textbox ausgewählt. Ich muss versuchen, herauszufinden, wie ich das verhindern kann. Ich probierte die Methode auf der Textbox aus, aber das scheint nicht zu funktionieren. Ich habe auch versuchtText in einem Textfeld abwählen

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

aber ich irgendwie wurde zu raten, was die Paramter müssen eingestellt werden, zwicken sie keinen Unterschied zu machen scheint. Um wirklich zu verstehen, was ich mache, werde ich ein wenig klarer machen, wie das alles geschieht.

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

Alles funktioniert, außer dem Teil in Ordnung, wo sie die Informationen in der Textbox gedruckt hat aber den gesamten Text in das Textfeld ausgewählt ist, die nicht das, was ich dachte, passieren würde, noch ist es, was ich passieren soll .

Danke für jede Idee!

Antwort

37

Versuchen Sie folgendes:

txtBox.Select(0, 0); 
+0

Das hat den Trick, danke! =) – Froz

+2

Dann sollten Sie diese Antwort akzeptieren. –

+1

+1 zu Glück 13. Vielleicht @Froz wird die Antwort jetzt akzeptieren ;-) – Arrow

4

Versuchen Sie folgendes:

//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, weil ich nicht wusste, dass die TabStop-Eigenschaft das lösen würde. –

+0

Das Setzen der .TabStop-Eigenschaft auf meinem RO-Textfeld war alles, was ich brauchte. Sehr Schön. Danke. – jinzai

10

Ich weiß, es ist eine alte Frage, aber ich fand, dass dies funktioniert auch:

txtBox.SelectionLength = 0; 

Dies könnte vorteilhaft sein, zu SteveCavs Select(0,0), da es den Auswahlstartpunkt nicht verschiebt.

Verwandte Themen