So ändern Sie ForeColor des Kombinationsfeld Ausgewählte Element?
Ist es möglich, ändern Sie das Aussehen für ausgewählte (nicht im drop-down!) item???
combobox.ForeColor ändern Sie den text Farbe nur für alle Elemente in der drop-down-Liste.
Edit:
Varianten sind beelow, unsere ist
public static void CBoxDrawItem(object sender, DrawItemEventArgs args)
{
var box = sender as ComboBox;
if (box == null || args.Index < 0 || args.Index >= box.Items.Count)
return;
e.DrawBackground();
var data = box.Tag as ControlData;
var color = (args.State & DrawItemState.ComboBoxEdit) == 0 || data == null || !data.IsInDefaultState
? e.ForeColor : GetDefaultColor(e.ForeColor);
using (var brush = new SolidBrush(color))
{
args.Graphics.DrawString(box.Items[args.Index].ToString(), args.Font, brush, args.Bounds.X, args.Bounds.Y);
}
args.DrawFocusRectangle();
}
Welche Art von combobox verwenden Sie? Einfaches, DropDown oder DropDownList?
Ich habe DropdownList
Siehe unten meine Antwort—Sie brauchen, um das zu ändern, DropDown-Menü, statt. Es gibt keinen Weg, um eine DropDownList zu malen, in der Sie eine benutzerdefinierte Farbe, so, wie es ist Themen-unter Windows Vista und höher.
Ich habe DropdownList
Siehe unten meine Antwort—Sie brauchen, um das zu ändern, DropDown-Menü, statt. Es gibt keinen Weg, um eine DropDownList zu malen, in der Sie eine benutzerdefinierte Farbe, so, wie es ist Themen-unter Windows Vista und höher.
InformationsquelleAutor Lonli-Lokli | 2011-03-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du nicht ändern, die
FlatStyle
Popup oder Flach, um diese Arbeit zu machen. Und Sie wahrscheinlich nicht wollen, zu tun, dass in Erster Linie, weil diese Stile neigen dazu, sehen wirklich hässlich, wenn im Vergleich zum rest der Anwendung Schnittstelle. Native Windows-Steuerelemente verwenden, die eine 3D-style-Optik, die Wohnung und Popup-Stile sind so konzipiert für Web-oder Windows-Mobile-Anwendungen, wo Sie eine bessere Passform.Ich davon aus, dass Sie diese Frage stellen, da Sie bereits geschriebenen code zu ändern die Vordergrundfarbe des Textes in der combobox, aber habe bemerkt, dass es nicht funktioniert unter Windows Vista oder höher. Das ist, weil, wenn die
DropDownList
style der combobox geändert, um Aussehen wie eine Schaltfläche in diesen Versionen von Windows, Sie verloren auch die Unterstützung für benutzerdefinierte text Farbe. Stattdessen, wird der ausgewählte text wird immer angezeigt in der standard-Fenster "Text" - Farbe. Vergleichen Sie dieDropDownList
Stil zu den regulärenDropDown
Stil combobox:Optisch sind die beiden comboboxes gleich Aussehen in früheren Versionen von Windows, aber nicht unter Vista und höher. Der Schlüssel, um Ihre benutzerdefinierten Vordergrund-Farbe zu erscheinen, ist die Veränderung der
DropDownStyle
Eigenschaft Ihrer combobox-Steuerelement, umDropDown
(was ist eigentlich der Standard).Ich auch gerne die
FlatStyle
Eigenschaft zuSystem
so, dass Sie alle nette fade-in und fade-out-Effekte geboten, die von der nativen Windows-controls. DieStandard
Stil versucht zu emulieren, werden die Effekte in managed code, aber es funktioniert einfach nicht ganz das richtige Gefühl. Ich Sorge mich über die kleinen Dinge.Dann können Sie den folgenden code verwenden (wie ursprünglich vorgeschlagen, in Adrian ' s Antwort):
Um die folgende Wirkung:
Das ist nicht immer gut, zu haben editierbare element 🙂 Und wie Ihr image, look&feel für die combox ist auch geändert.
Du hast Recht, leider ist die Programmierung in über Kompromisse. Wie ich bereits in meiner Antwort, es gibt keinen Weg, um die neue Themen-control und noch in der Lage sein, um die schriftart Farbe. Sie müssen entweder ändern Sie den Stil von Steuern, zu deaktivieren, das Aussehen, dass insbesondere auf die Kontrolle insgesamt (die die gleiche Wirkung haben), oder geben Sie zum festlegen einer benutzerdefinierten Farbe.
Yep) Unsere varint ist im ersten post.
InformationsquelleAutor Cody Gray
Wenn Sie ändern, können Sie die FlatStyle der combo-box zum Popup-oder Flach-die Farbe des ausgewählten Objekts auch ändern, wenn Sie ändern Sie die ForeColor.
Ändern nur die Farbe des ausgewählten Elements können Sie implementieren eine Art workaround, und ändern Sie die ForeColor-jedes mal das DropDown geöffnet oder geschlossen wird.
Code-Beispiel:
InformationsquelleAutor Adrian Fâciu
Können Sie die Cody Grau' sugestion und fügen Sie es hat die gleiche DropDownList-Style-Verhalten:
Auf diese Weise kann der Benutzer nicht Bearbeiten Sie die combobox.
InformationsquelleAutor MaikoID