none
(VB-E 2010) Textmarkierung in Textfeld deaktivieren ? RRS feed

  • Frage

  • Hallo,

    jedesmal wenn ich die Form mit dem Text in dem Textfeld öffne, wird der gesammte Text markiert. Wie kann ich diese Markierung deaktivieren?

    Bisher habe ich 3 Varianten an Codes versucht, aber ohne Erfolg. :(

    Textbox1.SelectionStart = Textbox1.Text.Length
     
     Me.TextBox1.SelectionStart = 0 
    Me.TextBox1.SelectionLength = 0

     'Textbox1.SelectionStart = 0 
    TextBox1.SelectionLength = 0

    Ich habe: Multiline - true, Read only, Scrollbars - vertical

    Danke schonmal


    Computer sind großartig. Mit ihnen macht man die Fehler viel schneller.


    • Bearbeitet Golfi Dienstag, 28. Februar 2012 02:08
    • Verschoben Thorsten Dörfler Dienstag, 28. Februar 2012 21:37 VB Express (aus:Visual Basic (ab Version 2002 / .NET))
    Dienstag, 28. Februar 2012 02:01

Antworten

  • Hallo,

    dass der gesamte Text markiert wird ist ein Standardverhalten der Textbox und oft wird es vom Anwender auch erwartet, dass der gesamte Text markiert wird, wenn er mit der Tastatur zur TextBox navigiert. Du hattest bereits den richtigen Ansatz um das zu verhindern, hast aber wahrscheinlich nicht die richtigen Ereignisse gewählt:

    Public Class Form1
     
      Protected Overrides Sub OnShown(ByVal e As System.EventArgs)
        MyBase.OnShown(e)
    
        ' Verhindert das Markieren beim Anzeigen des Form:
        TextBox1.SelectionLength = 0
      End Sub
    
      ' Nur wenn auch bei Fokuserhalt nicht markiert werden soll:
      Private Sub TextBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Enter
        TextBox1.SelectionLength = 0
      End Sub
    End Class

    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de

    • Als Antwort vorgeschlagen Robert Breitenhofer Dienstag, 28. Februar 2012 13:27
    • Als Antwort markiert Golfi Dienstag, 28. Februar 2012 22:29
    Dienstag, 28. Februar 2012 10:43
  • Hallo,

    verstehe schon, hier fehlen mal wieder elementare Grundlagen im Umgang mit Visual Basic + WinForms. In meinem Beispiel heißt es "Form1" und bei Dir eben "recht", aber das Prinzip bleibt das gleich. Füge einfach mein Beispiel (ohne Public Class Form1 und End Class) in Dein Formular "recht" ein.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de

    • Als Antwort markiert Golfi Dienstag, 28. Februar 2012 22:29
    Dienstag, 28. Februar 2012 21:36

Alle Antworten

  • Hallo,

    dass der gesamte Text markiert wird ist ein Standardverhalten der Textbox und oft wird es vom Anwender auch erwartet, dass der gesamte Text markiert wird, wenn er mit der Tastatur zur TextBox navigiert. Du hattest bereits den richtigen Ansatz um das zu verhindern, hast aber wahrscheinlich nicht die richtigen Ereignisse gewählt:

    Public Class Form1
     
      Protected Overrides Sub OnShown(ByVal e As System.EventArgs)
        MyBase.OnShown(e)
    
        ' Verhindert das Markieren beim Anzeigen des Form:
        TextBox1.SelectionLength = 0
      End Sub
    
      ' Nur wenn auch bei Fokuserhalt nicht markiert werden soll:
      Private Sub TextBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Enter
        TextBox1.SelectionLength = 0
      End Sub
    End Class

    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de

    • Als Antwort vorgeschlagen Robert Breitenhofer Dienstag, 28. Februar 2012 13:27
    • Als Antwort markiert Golfi Dienstag, 28. Februar 2012 22:29
    Dienstag, 28. Februar 2012 10:43
  • Ähhm, wo soll ich den Code einsetzen?

    Ich öffne eine neue Form, in der die Textbox integriert ist, aus einer anderen Form heraus. (siehe Bild)


    Computer sind großartig. Mit ihnen macht man die Fehler viel schneller.

    Dienstag, 28. Februar 2012 20:21
  • Hallo,

    verstehe schon, hier fehlen mal wieder elementare Grundlagen im Umgang mit Visual Basic + WinForms. In meinem Beispiel heißt es "Form1" und bei Dir eben "recht", aber das Prinzip bleibt das gleich. Füge einfach mein Beispiel (ohne Public Class Form1 und End Class) in Dein Formular "recht" ein.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de

    • Als Antwort markiert Golfi Dienstag, 28. Februar 2012 22:29
    Dienstag, 28. Februar 2012 21:36
  • Danke für die Hilfe.

    Computer sind großartig. Mit ihnen macht man die Fehler viel schneller.

    Dienstag, 28. Februar 2012 22:29