zoukankan      html  css  js  c++  java
  • 如何让组合框的宽度自动适应

    在Windows Forms应用程序开发过程中,我们经常会用到组合框(ComboBox),但它的那个下拉列表宽度是固定的,那么如何让它支持自动适应的宽度呢。下面是一个小例子

    using System;
    using System.Drawing;
    using System.Linq;
    using System.Windows.Forms;
    using System.IO;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
    
                Load += new EventHandler(Form1_Load);
            }
    
            void Form1_Load(object sender, EventArgs e)
            {
    
                var dir = new DirectoryInfo("e:\\temp");
                var query = from f in dir.GetFiles()
                            select new
                            {
                                FullName = f.FullName,
                                Name = f.Name
                            };
    
                comboBox1.DataSource = query.ToArray();
                comboBox1.DisplayMember = "Name";
                comboBox1.ValueMember = "FullName";
    
    
                
                using (Graphics g = comboBox1.CreateGraphics())
                {
                    int widestWidth = comboBox1.DropDownWidth;
                    foreach (var item in query.Select(v=>v.Name))
                    {
                        int current = (int)g.MeasureString(item, comboBox1.Font).Width;
                        if (current > widestWidth) widestWidth = current;
                    }
                    comboBox1.DropDownWidth = widestWidth;
                }
    
            }
    
        }
    }
    
  • 相关阅读:
    Python之MySQLdb
    Python 小方法
    Python文件打包
    禅道使用教程
    Linux命令
    安卓自动化测试monkey
    深入分析Java中的中文编码问题
    Linux命令搜索
    文件上传的类型选择控制
    MySql格式化日期函数
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1739590.html
Copyright © 2011-2022 走看看