Text von fokussierter Textbox markieren

Hallo!
Ich habe folgenden Code:
_________________________________________
For i = 0 To My.Application.OpenForms.Count - 1

If My.Application.OpenForms.Item(i).ContainsFocus Then

If TypeOf (My.Application.OpenForms.Item(i).ActiveControl) Is TextBox Then ’ wenn es sich um eine TextBox handelt, was fokussiert ist, dann Text markieren

'Was muss ich machen, damit ich nun von der Textbox den Text markieren will?

End If

End If

Next
_________________________________

Meine Frage steht als Kommentar schon drin :smile:. Wie kann ich von der Textbox dann den Text markieren, denn das SelectAll mir nicht zur Verfügung.

Danke im Voraus für eure Hilfe

Hallo!

Warum steht Dir SelectAll nicht zur Verfügung? Wenn es eine TextBox ist, hat sie die SelectAll Methode. Wenn Du nach Intellisense gehst, siehst Du logischerweise auch nur die Eigenschaften/Methoden des statischen Typs des betreffenden Objekts.
Da ActiveControl aber als Typ Control hat (und eben nicht TextBox), musst Du erst dafür sorgen, dass das ActiveControl auf TextBox gecastet wird (in VB gibt es dafür CType ), damit der Compiler (bzw. ggf. das Intellisense) auch weiss, dass es sich um eine TextBox handeln soll.

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo!
Ich habe folgenden Code:
_________________________________________
For i = 0 To My.Application.OpenForms.Count - 1

If
My.Application.OpenForms.Item(i).ContainsFocus Then

If TypeOf
(My.Application.OpenForms.Item(i).ActiveControl) Is TextBox
Then ’ wenn es sich um eine TextBox handelt, was fokussiert
ist, dann Text markieren

'Was muss ich machen, damit ich nun von der Textbox den
Text markieren will?

End If

End If

Next
_________________________________

Meine Frage steht als Kommentar schon drin :smile:. Wie kann ich
von der Textbox dann den Text markieren, denn das SelectAll
mir nicht zur Verfügung.

Danke im Voraus für eure Hilfe

Hallo!

Warum steht Dir SelectAll nicht zur Verfügung? Wenn es eine
TextBox ist, hat sie die SelectAll Methode. Wenn Du nach
Intellisense gehst, siehst Du logischerweise auch nur die
Eigenschaften/Methoden des statischen Typs des betreffenden
Objekts.
Da ActiveControl aber als Typ Control hat (und eben nicht
TextBox), musst Du erst dafür sorgen, dass das ActiveControl
auf TextBox gecastet wird (in VB gibt es dafür
CType ), damit der Compiler (bzw. ggf. das
Intellisense) auch weiss, dass es sich um eine TextBox handeln
soll.

Gruß,
Martin

Hallo, Danke für deine Antwort. An sowas habe ich auch gedacht aber wusste es nicht genau, da ich noch neu .NET bin.
Habe das jetzt so gemacht:

Dim txtBox As TextBox
.
.
If TypeOf (My.Application.OpenForms.Item(i).ActiveControl) Is TextBox Then
'Markierung einbauen
txtBox = CType(My.Application.OpenForms.Item(i).ActiveControl, TextBox)
txtBox.SelectAll()
End If
.
.

Aber markiert wird der Text trotzdem nicht wenn ich auf das Textfeld klicke. Was mache ich denn falsch?

[…]
Aber markiert wird der Text trotzdem nicht wenn ich auf das
Textfeld klicke. Was mache ich denn falsch?

Wird denn der gepostete Code überhaupt durchlaufen, wenn Du in ein Textfeld klickst?
Von alleine passiert logischerweise nichts, Du müsstest also erst ein Ereignis haben, in dessen Ereignisbehandlungsroutine Du dann den Code ausführst…

Gruß,
Martin

Ja, der Code wird durchlaufen, habe das auf jeden Fall mit einem Ereigniss verbunden, aber aus Übersichtlichkeitsgründen nicht den Code hier rein kopiert.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,
warum schreibst du eigentlich den Code nicht direkt in das Event „Enter“?

Dann Ergibt sich folgendes:

Private Sub TextBoxen\_Enter(ByVal sender As System.Object, \_
 ByVal e As System.EventArgs) Handles TextBox1.Enter, TextBoxN.Enter
 CType(sender, TextBox).SelectAll()
End Sub

So fängst du nur die gewollten Textboxen ab, ohne imemr alle Steuerelemente iterieren zu müssen.

Gruß,
AlexR