2017-05-13 2 views
0

nur zum Beispiel:beste Art und Weise zwei Kontrollen aufeinander zu setzen und ihre Sichtbarkeit verwalten - C#

Ich habe zwei Textfelder, beide sollten in der gleichen Position in der Form sein, und beide sind in der gleichen Größe. Ich muss einen von ihnen wegen einer Reue sichtbar machen.

OK, alles, was es perfekt:

if (condition) 
{ 
    txtBox1.Visible = false; 
    txtBox2.Visible = true; 
} 
else 
{ 
    txtBox1.Visible = true; 
    txtBox2.Visible = false; 
} 

aber es gibt ein kleines Problem in design mode! Ich kann nicht eines der Textfelder in design mode leicht behandeln und wählen, eins wird an zurück gesendet und eins wird an Front gesendet und der Zugriff auf sie verursacht Störungen!

Wie kann ich solche Situationen mit der Bestellung und dem Design von Steuerungen verwalten? Ist mein Weg, zwei Kontrolle aufeinander zu setzen, richtig? Gibt es einen besseren Weg?

Antwort

1

Eine Option ist ein TextBox in der Lage zu setzen, wo Sie es wollen (wir textbox1 sagen wird an der richtigen Stelle sein) und Lege das andere Textfeld in die Nähe des Designers. Auf diese Weise können Sie sie zur Designzeit einfach auswählen.

Dann in Ihrem Veranstaltung, setzen Sie nur textBox2 an der gleichen Stelle wie textbox1:

private void Form1_Load(object sender, EventArgs e) 
{ 
    textbox2.Location = textbox1.Location; 
    textbox2.Visible = false; 

Eine bessere Frage könnte, warum tun Sie das? Eine Textbox ist eine Textbox, und Sie haben bereits eine an der von Ihnen gewünschten Position. Ein Textfeld dient zum Sammeln von Benutzereingaben. Warum einen anderen an der gleichen Stelle zeigen und verstecken? Der Benutzer wird den Unterschied nicht kennen, und Ihr Programmstatus wird vermutlich den Namen des Steuerelements nicht interessieren, in dem der Benutzer Daten eingegeben hat ...

+0

Danke, Textboxen sind nur ein Beispiel. – Nofuzy

1

Es gibt mehrere Möglichkeiten, aus denen Sie ein einzelnes Steuerelement auswählen können. Zuerst, indem Sie die Tabulatortaste drücken, bis Sie auf dem Steuerelement landen, das Sie auswählen möchten. Um die Auswahl zu optimieren, müssen Sie zuerst ein anderes Steuerelement auswählen, dessen Registerreihenfolge kleiner als diese beiden ist.

Zweitens können Sie ein beliebiges Steuerelement auswählen und F4 drücken, um das Eigenschaftenfenster zu öffnen. Oben im Eigenschaftenfenster gibt es eine Dropdown-Liste, in der Sie den Control-Namen sehen können. Sie können dann das Steuerelement Ihrer Wahl aus diesem Eigenschaftenfenster auswählen und Änderungen an den Eigenschaften vornehmen.

+0

danke, Aber tue ich etwas richtiges, das zwei Kontrollen auf einander setzt? ist das Standard? oder Pro-Programmierer werden einen anderen Weg gehen? – Nofuzy

+0

@Nofuzy - Es ist nicht der richtige Weg, zwei Steuerelemente übereinander zu legen. Sie versuchen, dynamisch nur ein Steuerelement verfügbar zu machen. Stattdessen können Sie das Steuerelement der Wahl zur Laufzeit erstellen und an die Stelle platzieren, die Sie benötigen. – Gururaj

1

Sie können Somethings wie dies zu tun, hier ist der Beispielcode,

txtBox1.Visible = false; 

Point loc = new Point(50, 60); //new location point 
txtBox2.Location = loc; //changing location of txtBox2 
txtBox2.Visible = true; 
Verwandte Themen