vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Focus Event für gesamte Form 
Autor: Kai Freeman
Datum: 28.09.09 13:05

Hallo Leute

So endlich sind meine Bücher eingetroffen und ich muss sagen die bringen wirklich was (nona *gg*)

Nun hab ich aber folgendes Problem ich bin daran gewöhnt in meinen Anwendungen das alle Textfelder Combos usw also alles wo User Eingaben gemacht werden die Steuerelemente die Hintergrundfarbe ändern und der Text markiert wird das funktioniert ja auch wunderbar aber ich muss das immer für jedes einzelne Element in der Form machen.

D.h.
    Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As _
      System.EventArgs) Handles TextBox1.GotFocus
        With TextBox1
            .BackColor = Color.Azure
            .SelectionStart = 0
            .SelectionLength = Len(.Text)
        End With
    End Sub
 
    Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As _
      System.EventArgs) Handles TextBox1.LostFocus
        TextBox1.BackColor = Color.White
    End Sub
Wie gesagt es funktioniert aber bei durchschnittlich 30 bis 50 Steuerelementen wird man zum Schwammerl...

Denk ich mir is ja easy die Controls liegen ja alle in der me.controls oder in den Containern also:

    Protected Overrides Function ProcessDialogKey(ByVal keyData As Keys) As _
      Boolean
        MyBase.ProcessDialogKey(keyData)    'Focussteuerung
    End Function
 
    Private Sub kd_stamm_KeyPress(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
        Dim ctrl As Control
        Dim g_ctrl As Control
 
        If e.KeyChar = vbTab Then
            For Each ctrl In Me.Controls
                'Container Elemente:
                If TypeOf (ctrl) Is GroupBox Then
                    For Each g_ctrl In ctrl.Controls
                        If TypeOf (g_ctrl) Is TextBox Or TypeOf (g_ctrl) Is _
                          ComboBox Then
                            If g_ctrl.Focused Then
                                g_ctrl.BackColor = Color.Azure
                            Else
                                g_ctrl.BackColor = Color.White
                            End If
                        End If
 
                    Next
                End If
 
                If TypeOf (ctrl) Is TextBox Or TypeOf (ctrl) Is ComboBox Then
                    If ctrl.Focused Then
                        ctrl.BackColor = Color.Azure
                    Else
                        ctrl.BackColor = Color.White
                    End If
                End If
 
            Next
        End If
    End Sub
 
    Private Sub kd_stamm_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        Me.KeyPreview = True
    End Sub
Probleme:

1. Beim Formload bleibt 1.Textbox Weiß. (Is logisch weil ja kein Tabulator emuliert wurde)
2. Die TAB-Reihenfolge überspringt mir Steuerelemente in einem Container.
zB ich habe 5 Textboxen im Container die erste wird focusiert und färbt sich die zweite wird übersprungen und geht direkt zur dritten warum?
3. Mit Tab klappt es ja so weit und der Wechsel mit ENTER wäre jetzt auch kein Problem aber wenn der Focus erhalt über Klick oder sonstiges durchgeführt wird greift der Code nicht (klar kann er auch nicht)

Daher meine Frage gibt es da was einfaches simples das die Eingabefelder beim Fokus erhalt einfärbt und markiert egal wie der Focus übergeben wurde?

Danke!

mfG.
Stephan

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Focus Event für gesamte Form2.518Kai Freeman28.09.09 13:05
Re: Focus Event für gesamte Form1.879xtts0228.09.09 14:12
Re: Focus Event für gesamte Form1.836Kai Freeman28.09.09 16:38

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel