vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Combobox - Text wird bei MouseOver nicht geändert 
Autor: Dikn
Datum: 26.01.17 17:53

Hallo!
Wenn ich in einer Combobox (Dropdown-Bereich sichtbar) Taste "UP"/"DOWN" betätige wird zum vorigen/nächsten Eintrag gewechselt. Gleichzeitig wird in der Combobox der Text des entsprechenden Eintrags angezeigt.

Leider funktioniert das nicht mit der Maus
wenn Maus über einem Eintrag:
- der Eintrag wird markiert
- aber in der Combobox wird der Text nicht geändert

Wie kann man das ändern?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Combobox - Text wird bei MouseOver nicht geändert 
Autor: GPM
Datum: 26.01.17 20:04

Selbst zeichnen.

Public Class Form1
    Dim WithEvents Cb As New ComboBox With {.DrawMode = _
      DrawMode.OwnerDrawFixed, .Parent = Me}
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Cb.Items.AddRange({"White", "Black", "Red", "Green", "Blue"})
    End Sub
 
    Private Sub Cb_DrawItem(sender As Object, e As DrawItemEventArgs) Handles _
      Cb.DrawItem
        Dim txt As String = Cb.Items(e.Index).ToString
        e.DrawBackground()
        If Not e.State = DrawItemState.None Then
            e.Graphics.FillRectangle(Brushes.SkyBlue, e.Bounds)
            Cb.Text = txt
            Me.BackColor = Color.FromName(txt)
        End If
        e.Graphics.DrawString(txt, Font, Brushes.Black, e.Bounds)
    End Sub
End Class
MfG GPM
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Combobox - Text wird bei MouseOver nicht geändert 
Autor: Manfred X
Datum: 27.01.17 09:43

Hallo!

GPM hat bereits demonstriert, wie man durch Maus-Hover ein Item selektieren kann.

Allerdings ist zu beachten, daß ein Item in einer Combobox gewöhnlich erst durch einen
Maus-Click selektiert wird. Maus-Hover markiert nur.

Durch die von Dir intendierte Select-Wirkung des Hover-Effekts geht eventuell
eine bereits getätigte Eingabe/Auswahl des Users verloren.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Combobox - Text wird bei MouseOver nicht geändert 
Autor: Dikn
Datum: 27.01.17 10:54

Noch eine Frage:
der Text in der Combobox kann geändert werden.
Wie kann ich das verhindern?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Combobox - Text wird bei MouseOver nicht geändert 
Autor: Dikn
Datum: 27.01.17 09:44

Viele, vielen Dank!!!!
klappt wunderbar

vielleicht noch ein Tipp:
bei Klick auf z.B. "Red" soll nichts passieren - außer "Beep" (Dropdown bleibt offen, Fokus bleibt)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Combobox - Text wird bei MouseOver nicht geändert 
Autor: Manfred X
Datum: 27.01.17 11:04

Durch das Setzen der DropDownStyle-Eigenschaft:
Cb.DropDownStyle = ComboBoxStyle.DropDownList

Es sollte in dem Fall ein Item als Default-Selection eingestellt werden.

Übrigens ist dann im Beispiel von CPM noch der Fall e.Index = -1
im Drawitem-Eventhandler abzufangen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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