ToolStripComboBox - Autosize auf Artikel
-
02-10-2019 - |
Frage
Ich habe einen Toolstrip mit einer ToolStripComboBox Kontrolle über sie, und ich mochte es autosize das breiteste Element in der Dropdown-Liste zu passen. Wie kann ich das erreichen? Die „Autosize“ Eigenschaft auf „true“, aber es scheint keinen Unterschied zu machen. Ich habe meinen Kopf über diese für eine Weile hämmern. Ist es überhaupt möglich?
Lösung
Nach diesem MSDN-Artikel Auto-Size-Eigentum-Überblick nur einige die Steuerelemente unterstützen die Autosize-Eigenschaft. ComboBox hat keine Auto-Size-Unterstützung.
Andere Tipps
Ich hatte das gleiche Problem. Meine Lösung war, die Größe auf dem Drop-Down-Ereignisse zu ändern. Sie können eine maximale Breite in der MeasureString passieren, oder Klemme maxWidth Sie sich, bevor Sie die dropdown gesetzt.
private void m_comboBox_DropDown(object sender, EventArgs e)
{
using (System.Drawing.Graphics graphics = CreateGraphics())
{
int maxWidth = 0;
foreach (object obj in m_comboBox.Items)
{
System.Drawing.SizeF area = graphics.MeasureString(obj.ToString(), m_comboBox.Font);
maxWidth = Math.Max((int)area.Width, maxWidth);
}
m_comboBox.DropDownWidth = maxWidth;
}
}