ComboBox - подстраиваем ширину выпадающего списка под самый длинный элемент

Два очевидных решения - сделать всплывающую подсказку или увеличить ширину самого выпадающего списка. Вычисляем максимальную длину строки в таблице-справочнике:

// устанавливаем ширину выпадающего списка на основании наибольшей длины элемента в источнике данных 
public static void SetComboBoxDropDownWidth(ComboBox comboBox,  DataView comboBoxSourceView, string visibleStringName)
{
	if (comboBoxSourceView.Count == 0) { return; }
	System.Drawing.Graphics graphics = comboBox.CreateGraphics();
	comboBox.DropDownWidth =
		(from width in
			(from DataRowView item in comboBoxSourceView
			select Convert.ToInt32( graphics.MeasureString( item[visibleStringName].ToString(), comboBox.Font).Width))
		select width).Max();
	comboBox.DropDownWidth += 10; //иногда не влезает последняя буква
}

Setting DropDown list width of DataGridView ComboBoxColumn - WinForms


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>