Hallo zusammen,
da ich mit den Möglichkeiten zur Anpassung einer ComboBox nicht zufrieden bin, möchte ich mir kurzerhand eine eigene ComboBox erstellen. Zuerst einmal die Gründe warum ich nicht zufrieden bin:
Es geht vor allem um das Design, welches in diesem standard Control-Grau vorliegt, und welches man nur bedingt anpassen kann. Es gibt zwar die Möglichkeit Eigenschaften, wie die backcolor zu setzen, aber auch das zeigt nur in Maßen die gewünschten Resultate. Eine weitere Möglichkeit ist es die DrawItem-Methode bzw. das DrawItem-Event zu verwenden aber dies hat auch einige Lücken. Es gibt demnach 3 Dinge die mich stören:
1. Die Eigenschaft backcolor verändert lediglich den Hintergrund des DropDowns und des TextFeldes bzw. des Feldes, in dem das aktuelle Item angezeigt wird (nur im Modus DropDown ein TextFeld mit AutoComplete). Unverändert bleiben sowohl die Border als auch der "Foldout-Pfeil". Diese behalten ihre Control-Color, was bei einigen UI-Designs unerträglich ist.
2. Die Farbe der Textmarkierung lässt sich nicht verändern. Bei einer Hintergrundfarbe von beispielsweise R:45 G:45 B:45, also einem dunklen Grau, sieht das Blau zum Beispiel sehr, sehr unpassend aus.
3. Um das Dropdown-Element wird eine bläuliche Border gezogen, welche im normalen Control-Design vielleicht ganz schön aussieht, aber mit anderen Farben sticht sie erstens zu sehr heraus und zweitens sieht sie einfach blöd aus.
Dies sind die 3 Hauptgründe, warum ich eine eigene ComboBox erstellen möchte. Die einzige Sache, die mir schon im theoretischen Ansatz Kopfzerbrechen bereitet ist die Dropdown-List. Diese ist nämlich anscheinend nicht direkt Teil des Steuerelementes. Hier was ich meine:
Normalerweise werden Steuerelemente, wenn sie mit einer Dockeigenschaft versehen werden, welche nicht None lautet, immer neu arrangiert (Location und Size), je nachdem welche Elemente gerade sichtbar sind und welche nicht. Eine ComboBox verhält sich jedoch grundlegend anders. Wenn man den DockStyle auf Top setzt und und ein weiteres beliebiges Element darunter platziert, ebenfalls mit Dock -> Top, und man das Dropdown Element ausfährt, dann wird es über das andere Element drüber gezeichnet, was beweißt, dass es nicht direkt Teil des ComboBox-Formulares ist, da sonst die Höhe hätte verändert werden müssen um das Element sichtbar zu machen und dies hätte das andere Element nach unten geschoben. Mir stellt sich also die Frage, aus was besteht so ein DropDown und wie kann ich das nachbauen?
LG Kasko
PS Wenn jemand Lösungen zu den 3 oben genannten Problemen hat, sind diese auch gerne willkommen.