zoukankan      html  css  js  c++  java
  • C#自定义控件之下拉列表框

    1. 设置 DropDownStyle 为 DropDownList


       
    2. 将 DrawMode 改为 OwnerDrawFixed


       
    3. 添加 DrawItem 事件
    4.  样式就变为下面这样,但是只能在列表中选择,而不能手动输入

        public class ComBox : ComboBox
        {
            public ComBox()
            {
                this.DropDownStyle = ComboBoxStyle.DropDownList;
                this.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable;
                this.DrawItem += new DrawItemEventHandler(ComBox_DrawItem);
            }
    
            void ComBox_DrawItem(object sender, DrawItemEventArgs e)
            {
                ComboBox cb = sender as ComboBox;
                if (e.Index < 0)
                {
                    return;
                }
                e.DrawBackground();
                e.DrawFocusRectangle();
                e.Graphics.DrawString(cb.GetItemText(cb.Items[e.Index]).ToString(), e.Font, new SolidBrush(e.ForeColor), e.Bounds.X, e.Bounds.Y + 3);
            }
    
        }
    
        public class CmbInfo
        {
            public int ID { get; set; }
    
            public object ObjEnum { get; set; }
    
            public string Name { get; set; }
        }
    
    
    
    List<CmbInfo> listCmbInfo = new List<CmbInfo>();
    listCmbInfo.Add(new CmbInfo() { ID = 100, Name = "100" });
    listCmbInfo.Add(new CmbInfo() { ID = 120, Name = "120" });
    listCmbInfo.Add(new CmbInfo() { ID = 150, Name = "150" });
    this.cmb1.DisplayMember = "Name";
    this.cmb1.ValueMember = "ID";
    this.cmb1.DataSource = listCmbInfo;
    
    //这样显示的是 Name 属性,取值时可以取 ID 属性 (this.cmb1.SelectedValue)
    
  • 相关阅读:
    遗忘
    2008年第一篇1.15
    键盘对应值
    油田开采基础知识
    最近
    oracle中lob数据的操作
    [转]大数据能做什么,大数据和云是不是一回事?
    [转]从这些方面判断一家公司的好坏
    This Android SDK requires Android Developer Toolkit version 20.0.0 or above
    谈创新
  • 原文地址:https://www.cnblogs.com/bridgew/p/12709095.html
Copyright © 2011-2022 走看看