ComboBox Farb auswahl
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 40 Antworten in diesem Thema. Der letzte Beitrag () ist von Andrejd1987.
-
-
ich habe doch das per Designer in die Form gezogen nur wie gesagt zeigt er nix an leider
auch mit xtts02
mfg Andrejd -
-
-
nafets3646 schrieb:
Wenn schon ..., dann so:
Sicherlich könnte man's so machen. -
xtts02 schrieb:
Und welchen Namen hat der über den Designer hinzugefügte Instanz?
Edit:
mitVB.NET-Quellcode
Zeigt er zwar namen an nur nicht die Farben wie beim ersten post vom vb-checker
mfg Andrejd -
Nimm einfach das
Private With Events...
raus. Wenn du den Designer benutzt, kannst du das Control nicht noch per Code erstellen. Sonst fügst du die Items noch zur falschen Combobox hinzu...
Mein Code von ganz am Anfang ist einfacher Copy & Paste. Benutz den einfachSkybird schrieb:
Das sind ja Ubisoftmethoden hier !
-
-
Class12
edit:
okay
jetzt Funkts
wäre net mit einer kleinen hilfe ob man festlegen kann das wenn Frabe yxx auch die Farbe z.b. von einer Form yxx wird
dafür war es ja gedacht
mit
oder ?
was wäre da besser ?
mfg AndrejdDieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Andrejd1987“ ()
-
Andrejd1987 schrieb:
Class12
Schmeiß diese Zeile raus, wenn sie nicht in der FormX.Designer.vb steht und benenne alle anderen Instanzen entsprechend um.Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
-
siehe letzter Post
ich möchte halt nicht für jede farbe einzeln bestimmen wie hier
mfg Andrejd -
Skybird schrieb:
Das sind ja Ubisoftmethoden hier !
-
Nice
So Funktioniert es
Also recht Herzlichen Dank an alle die mitgeholfen haben
mfg Andrejd -
Rund wirds, wenn der obige Code in den Konstruktor von Class1 gepackt wird:
-
Hi
schöner geht das folgendermaßen:
VB.NET-Quellcode
- Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Dim tc As New ColorConverter()
- Dim list As List(Of Color) = tc.GetStandardValues(Nothing).Cast(Of Color)().Where(Function(c) Not c.IsSystemColor).ToList() 'Standardfarben ohne Systemfarben ermitteln
- list.Sort(AddressOf CompareColors) 'Sortieren (siehe unten)
- _colorBox.DataSource = list 'Datenquelle setzen
- _colorBox.DisplayMember = "Name" 'Name der Farbe anzeigen
- End Sub
- Private Shared Function CompareColors(ByVal left As Color, ByVal right As Color) As Integer
- Dim cmp As Integer = left.GetHue().CompareTo(right.GetHue()) 'erst Farbton vergleichen
- If cmp = 0 Then cmp = left.GetBrightness().CompareTo(right.GetBrightness()) 'Helligkeit vergleichen, wenn Farbton gleich ist
- If cmp = 0 Then cmp = left.GetSaturation().CompareTo(right.GetSaturation()) 'Saettigung vergleichen, wenn Helligkeit und Farbton gleich sind
- Return cmp
- End Function
- Private Sub _colorBox_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles _colorBox.DrawItem
- e.DrawBackground()
- Static imagePadding As New Padding(1) 'Rahmen fuer das Vorschaubild
- Dim listbox As ListBox = _colorBox 'analog fuer ComboBox
- Dim color As Color = DirectCast(listbox.Items(e.Index), Color)
- 'Bounds fuer Bild und Text ermitteln
- Dim imageBounds As New Rectangle(e.Bounds.Left + imagePadding.Left, e.Bounds.Top + imagePadding.Top, 18, e.Bounds.Height - imagePadding.Vertical)
- Dim textBounds As New Rectangle(imageBounds.Right + imagePadding.Right, e.Bounds.Top, e.Bounds.Width - (imageBounds.Right + imagePadding.Right), e.Bounds.Height)
- 'Vorschaubild zeichnen
- e.Graphics.FillRectangle(New SolidBrush(color), imageBounds)
- 'Rahmen zeichnen
- e.Graphics.DrawRectangle(Pens.DimGray, New Rectangle(imageBounds.Left, imageBounds.Top, imageBounds.Width - 1, imageBounds.Height - 1))
- 'Text zeichnen
- TextRenderer.DrawText(e.Graphics, listbox.GetItemText(color), e.Font, textBounds, e.ForeColor, TextFormatFlags.NoPrefix Or TextFormatFlags.VerticalCenter)
- 'ggf. Fokusrechteck zeichnen
- If (e.State And (DrawItemState.NoFocusRect Or DrawItemState.Focus)) = DrawItemState.Focus Then e.DrawFocusRectangle()
- End Sub
- Private Sub _colorBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _colorBox.SelectedIndexChanged
- 'Ausgewaehlte Farbe ermitteln
- _colorLabel.BackColor = DirectCast(_colorBox.SelectedValue, Color)
- End Sub
Color sind die eigentlich bearbeiteten Daten. Da man prinzipiell an Daten bindet, sollte man entsprechend auch die Daten verwenden und über DisplayMember anzeigen.
Gruß
~blaze~ -
Andrejd1987 schrieb:
Gugge mal Post #11, da stand was über Instanzen von Dialogen.Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
Den "Ranz" hat er von mir. Was haben Dialoge damit zu tun, wenn er eine Combobox haben will? Oder was meinst du
Wenn 's darum geht, dass diese Zeile eigentlich sinnbefreit ist, weil er darüber ja schon die mit demMe
hat, dann okSkybird schrieb:
Das sind ja Ubisoftmethoden hier !
-
vb-checker schrieb:
Was haben Dialoge damit zu tunFalls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
ich verstand deinen Post wirklich einfach falsch, sry
Skybird schrieb:
Das sind ja Ubisoftmethoden hier !
-
Ähnliche Themen
-
7 Benutzer haben hier geschrieben
- Gast (12)
- xtts02 (9)
- vb-checker (8)
- RodFromGermany (7)
- nafets (3)
- us4711 (1)
- ~blaze~ (1)