combox高度修改 winfrom_c# – 如何使ComboBox下拉列表调整大小以适应最大的项目?...

这就是我为解决这个问题所做的工作,效果很好……

public class ImprovedComboBox : ComboBox

{

public ImprovedComboBox()

{

}

public object DataSource

{

get { return base.DataSource; }

set { base.DataSource = value; DetermineDropDownWidth(); }

}

public string DisplayMember

{

get { return base.DisplayMember; }

set { base.DisplayMember = value; DetermineDropDownWidth(); }

}

public string ValueMember

{

get { return base.ValueMember; }

set { base.ValueMember = value; DetermineDropDownWidth(); }

}

private void DetermineDropDownWidth()

{

int widestStringInPixels = 0;

foreach (Object o in Items)

{

string toCheck;

PropertyInfo pinfo;

Type objectType = o.GetType();

if (this.DisplayMember.CompareTo("") == 0)

{

toCheck = o.ToString();

}

else

{

pinfo = objectType.GetProperty(this.DisplayMember);

toCheck = pinfo.GetValue(o, null).ToString();

}

if (TextRenderer.MeasureText(toCheck, this.Font).Width > widestStringInPixels)

widestStringInPixels = TextRenderer.MeasureText(toCheck, this.Font).Width;

}

this.DropDownWidth = widestStringInPixels + 15;

}

}


版权声明:本文为weixin_36341500原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。