关于ComboBox下拉选项过长显示不全的处理方法

  • Post author:
  • Post category:其他


说明:C#中ComboBox控件在项过长时,会显示不全

例如:


运行之后,字体显示不完整


我们需要重写ComboBox控件

class CustomCombox : ComboBox {
        protected override void OnDropDown(EventArgs e) {
            base.OnDropDown(e);
            AdjustComboBoxDropDownListWidth();
        }

        private void AdjustComboBoxDropDownListWidth() {
            int vertScrollBarWidth = (this.Items.Count > this.MaxDropDownItems) ? SystemInformation.VerticalScrollBarWidth : 0;

            int maxWidth = this.DropDownWidth;
            foreach (var layouts in this.Items) {
                int measureTextWidth = TextRenderer.MeasureText(layouts.ToString(), this.Font).Width;
                maxWidth = maxWidth < measureTextWidth ? measureTextWidth : maxWidth;
            }

            this.DropDownWidth = maxWidth + vertScrollBarWidth;
        }
    }

同样的数据源,运行之后




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