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

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

例如:

关于ComboBox下拉选项过长显示不全的处理方法_第1张图片

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

关于ComboBox下拉选项过长显示不全的处理方法_第2张图片

我们需要重写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;
        }
    }

同样的数据源,运行之后

关于ComboBox下拉选项过长显示不全的处理方法_第3张图片

你可能感兴趣的:(C#,日记)