Cursor setzen nach Ereignis - Sprungreihenfolge - Programmoberfläche verstecken?

Matze7

Mitglied
Habe folgendes Problem.

1. Der Cursor ist beim Start des Programms auf einem Textfeld. (TabIndex 0)
Ich habe nun einen Button angelegt, der beim Klicken den Inhalt des Textfeldes löscht. (z.B. TextBox1.Text = "")

Leider ist danach mein Cursor nicht mehr im Textfeld.

Kann man beim Aufruf des Lösch - Buttons auch irgendwo einstellen, das der Cursor wieder an 1. Stelle im Textfeld steht, also für die nächste Eingabe bereit?

2. Kann ich ein Textfeld so einrichten, das es bei der Eingabe automatisch alle Zeichen markiert, also so, dass ich dann z.B. mit STRG + V was einfügen kann, ohne erst vorher den bereits vorhandenen Text manuell löschen oder entfernen zu müssen.

3. Kann man eine Sprungreihenfolge für die Entertaste festlegen?
(z.B. man drückt in einem Textfeld nach der Eingabe die Enter Taste und die Markierung springt automatisch auf den Druckbutton, den ich angelegt habe. (Nochmalige Enter betätigung soll den Druck auslösen.)

4. Kann man einen bestimmten Teil der Programmoberfläche "verstecken" und z.B. durch einen Button verstecken und wieder anzeigen lassen?

Z.B. würde ich so die Druckeinstellungen aus und einblenden, wenn Änderungen gewünscht sind. (Diese Einstellungen sollen aber halt nicht immer sichtbar sein, sondern nur nach klicken auf den angelegten Button.

Vielleicht kann mir ja jemand bei einigen der Fragen helfen oder Tips geben, wie es funktionieren könnte. Danke
 
Frage 2: Ein den Inhalt einer Textbox löscht man mit:
Code:
TextBox1.Text = ""

Frage 3: Das musst du wohl selbst implementieren. Stichwörter: KeyDown-Event und der Focus()-Member eines Steuerelementes.

Frage 4: Entweder die Visible-Eigenschaft eines Controls auf False stellen, oder, wenn du bestimmte Teile verstecken willst - also nicht nur Controls, ein Panel drüber legen.

------

Ich hoffe das hilft. :)
Ich bin ein Bisschen in Eile, aber wenn ich wiederkomme (und du es noch weitere Fragen hast) kann ich dir genauer helfen. ;)
 
Danke erstmal für die Hilfe...

Frage 2 werde ich wohl erstmal durch 2 Druckbuttons lösen.

Einen, bei dem sich nichts ändert, man also in Textfeld einfach durch Backspace wieder zahlen löschen und ändern kann und einen 2. Druckbutton, bei dem nach drücken das Textfeld geleert wird und die Cursormarke wieder am Anfang steht. Quasi für einen Einfügemodus.

Eventuell kann ich das auch über 2 Radiobuttons als Auswahl machen und so doch nur einen Druckbutton machen. (aber eben mit 2 unterschiedlichen Funktionen) Weiß aber noch nicht, wie ich das genau umsetzen kann.

Frage 3 werde ich wohl mal suchen nach den Begriffen, Danke.

Zu Frage 4:

Ich würde eigentlich gerne bestimmte Teile der Oberfläche verstecken. Also man stelle sich das Form1 vor, mit allen Buttons und Feldern. Im unteren Bereich sind z.B. 4 Buttons oder Felder, die nicht oft benötigt werden, also auch nicht unbedingt sichtbar sein sollen. Nur möchte ich nicht die Buttons verschwinden lassen, sondern quasi das der Hintergrund (Form1) diesen Bereich ausblendet, wenn ich einen Button klicke. Also das gesamte Programmfenster dann unten kleiner wird, quasi so, als ob es eingeklappt (nach oben) wird. Also drücke ich einen Button, wird der untere Teil sichtbar, drücke ich ihn wieder, wird das Programmfenster wieder kleiner und der Teil unten ist nicht mehr sichtbar. Wirkt dann fast so, als ob es sich einklappt. (habe ich so jedenfalls schonmal gesehen...) Weist du was ich meine?
 
So, Frage 2 habe ich über eine Checkbox Abfrage gelöst.

Bleibt also nur noch Frage 3 und vor allem aber Frage 4, die mir noch sehr wichtig scheint...
 
Zu Text in Textbox selektieren:
Also es gibt bei der Textbox das Event "Enter". Wenn du da den Code reinpackst, den du vermutlich jetzt hinter der Combobox hast, erreichst du meiner Meinung nach was du möchtest. Oder etwa nicht?

Zu Frage 4 (Controls verstecken):
Entweder blendest du die Controls aus via XX.visible=False, oder du erstellst dir ein Panel, verschiebst die entsprechenden Controls darauf und blendest nur das Panel aus. Das hat die gleiche Wirkung.

Wenn du das Programmfenster in der Höhe ändern möchtest, gibt es auch entsprechende Eigenschaften dazu. z.B. DeinFormular.Size.Height für die Höhe.

Gruß

MasterDS
 
Zuletzt bearbeitet:
Danke vielmals für die Antwort.

Den Event Enter bei der Textbox wollte ich mir eigentlich dafür aufheben, das ich dann direkt zum Druckenbutton springe. Danach nochmal Enter beim Drucken Button und der Druck wird ausgelöst und der Cursor soll wieder in das ursprüngliche Textfeld. Das mit der Checkbox klappt super, lasse ich so.

Nur an der Umsetzung der Sache hängt es noch ein wenig...


Das mit der Programmfensterhöhe klingt super, demnach könnte ich über einen Button die Höhe (oder) Breite so verkleinern, das die Elemente die nicht direkt sichtbar sein sollen, quasi verschwinden. Wie löse ich die Aktion, wenn ich im Wechsel arbeiten will, also einmal den Button zum verkleinern nehmen will und denselben auch wieder zum vergrößern? Kann man auch festlegen, das zum Start die Programmfesterhöhe verkleinert angezeigt wird und erst beim Druck auf den Button vergrößert wird (und nach Druck auf den Button auch wieder verkleinert wird.)

Wäre für jeden Tip Dankbar...
 
Also zunächst mal:
Das Enter-Event wird NICHT gefeuert wenn Enter gedrückt wird, sondern wenn das Control aktiviert wird! Das ist ein gravierender Unterschied!

Wenn du ein und den selben Button für deine Aktion verwenden möchtest, hast du mehrere Möglichkeiten. Du könntest z.B. den aktuellen Stand in einer Variablen Speichern. z.B. so:

Code:
Dim boolErweitertesFenster as Boolean = False

Beim Klick auf den Button dann:
Code:
If boolErweitertesFenster then
'Code zum verkleinern
Else
'Code zum erweitern
Endif

boolErweitertesFenster = NOT boolErweitertesFenster

Di könntest das ganze aber auch abhängig von der derzeitigen Beschriftung des Buttons machen. Wie du es letztlich machst, ist Geschmackssache. Ich würde die Variable bevorzugen.

Natürlich kannst du das Fenster direkt beim Programmstart verkleinern lassen. Mit der schon genannten Size.X Eigenschaft.
 

Neue Beiträge

Zurück