一般的情况下,如果下拉框的选项的文字太长,下拉框ComboBox的Width宽度属性我们又不想要改变(默认不变),下拉选项的文字内容就会被截剪,如下图所示:
解决办法:
1、自动判断下拉选项的文字长度。
2、根据文字长度来设置下拉框的下拉部门的宽度DropDownWidth。
namespace WindowsFormsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); //comboBox1.Items.Add("China_我是中国人民共和国_China"); //comboBox1.Items.Add("我是人民"); var p = new { Name = "China_我是中国人民共和国_China" }; var p2 = new { Name = "我是人民" }; List<object> list = new List<object>(); list.Add(p); list.Add(p2); comboBox1.DisplayMember = "Name"; comboBox1.DataSource = list; // 测量出最大的字符大小 int maxSize = 0; System.Drawing.Graphics g = CreateGraphics(); for (int i = 0; i < comboBox1.Items.Count; i++) { comboBox1.SelectedIndex = i; SizeF size = g.MeasureString(comboBox1.Text, comboBox1.Font); if (maxSize < (int)size.Width) { maxSize = (int)size.Width; } } comboBox1.DropDownWidth = comboBox1.Width; if (comboBox1.DropDownWidth < maxSize) { comboBox1.DropDownWidth = maxSize; //comboBox1.Width = maxSize; } comboBox1.SelectedIndex = 0; } } }