DropDownList einer ComboBox nach links ausklappen lassen
-
Hallo,
ich verwende eine ComboBox, in der ich zur Laufzeit Elemente hinzufüge.
Wenn ich nun die DropDownList öffne, dann werden nicht alle Elemente vollständig angezeigt, da die Breite der ComboBox zu klein ist. Daher habe ich die Breite der DropDownList mit folgender Funktion angepasst:void adaptComboBoxSize(ComboBox^ cb) { Graphics^ g = cb->CreateGraphics(); float breite, maxBreite = 0; for each (Object^ element in cb->Items) { SizeF^ size = g->MeasureString(element->ToString(), cb->Font); breite = size->Width; if (breite > maxBreite) maxBreite = breite; } cb->DropDownWidth = (int) maxBreite + 20; }
Das Problem ist jetzt nur, dass die DropDownList immer nach rechts gezeichnet wird. Wenn nun das Hauptformular, auf dem die ComboBox sitzt, zu nach am rechten Monitorrand ist, so wird von der DropDownList ein Teil weggeschnitten. Auch nach unten hin geschieht das gleiche. Eigentlich kenn ich es so, dass die Liste dann automatisch nach Links verschoben wird, dass immer der komplette Inhalt angezeigt werden kann.
Ich muss noch dazu sagen, dass ich die ComboBox in einem TableLayoutPanel sitzen habe. Dieses Panel hat eine absolute Breite und bestimmt damit auch die Breite der ComboBox. Vll hat es damit noch was zu tun.
Habt ihr einen Rat für mich, wie ich die DropDownList ganz angezeigt bekomme? Muss ich nur eine Eigenschaft setzen oder im Programm entsprechend was hinterlegen?
Vielen Dank für eure Hilfe!!
Grüße