前面啥也没有
实现
加载界面时根据内容更改宽度
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
   | int DropDownWidth(ComboBox myCombo) {     int maxWidth = 0, temp = 0;     foreach (var obj in myCombo.Items)     {         temp = TextRenderer.MeasureText(obj.ToString(), myCombo.Font).Width;         if (temp > maxWidth)         {             maxWidth = temp;         }     }     return maxWidth; }
 
 
  comboBox1.DropDownWidth =      comboBox1.Items.Cast<string>().Max(x => TextRenderer.MeasureText(x, comboBox1.Font).Width);
   | 
 
扩展
Linq Cast
Cast操作符
Cast操作符用于将一个类型为IEnumerable的集合对象转换为IEnumerable<\T>类型的集合对象。也就是非泛型集合转成泛型集合,因为在Linq to OBJECT中,绝大部分操作符都是针对IEnumerable<\T>类型进行的扩展方法。因此对非泛型集合并不适用。
1 2 3 4 5 6 7 8 9
   | ArrayList al = new ArrayList(); al.Add(1); al.Add(2); al.Add(3); IEnumerable<int> IEInt = al.Cast<int>();     foreach (var i in IEInt) {     Console.WriteLine(i);            }
   | 
 
OfType操作符
OfType操作符与Cast操作符类似,用于将类型为IEnumerable的集合对象转换为IEnumerable<\T>类型的集合对象。不同的是,Cast操作符会视图将输入序列中的所有元素转换成类型为T的对象,如果有转换失败的元素存在Cast操作符将抛出一个异常;而OfType操作符仅会将能够成功转换的元素进行转换,并将这些结果添加到结果序列中去。与Cast操作符相比,OfType操作符更加安全。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
   | ArrayList al = new ArrayList(); al.Add(1); al.Add(2); al.Add("a");
 
 
 
 
  IEnumerable<int> IEOfType = al.OfType<int>(); foreach (int i in IEOfType) {     Console.WriteLine(i);    }
   |