当前位置: 代码迷 >> C# >> 自定义的ComboBox,中选中选项时,选项的字体颜色不变白
  详细解决方案

自定义的ComboBox,中选中选项时,选项的字体颜色不变白

热度:32   发布时间:2016-05-05 04:43:44.0
自定义的ComboBox,当选中选项时,选项的字体颜色不变白
正常情况下当选中某项时,该选项的字体会自动变白,但是我自定义的ComboBox却不变白,当选中选项的时候很难看清选项的内容.

如图:





 public partial class DjtComboBox : ComboBox
    {
        public DjtComboBox()
        {
            InitializeComponent();
            
        }
        
        private void DjtComboBox_DrawItem(object sender, DrawItemEventArgs e)
        {
           
            e.DrawBackground();

            //e.DrawFocusRectangle();
            
        
            Brush myBrush = Brushes.Black;
          //  Brush myBrush = Brushes.Gray;
            Brush myBrush2 = Brushes.White;
            Font ft = new Font("宋体", 9f);
            if (e.Index == -1)
            {
               
                return;
            }
           
            e.Graphics.DrawString(this.Items[e.Index].ToString(), ft, myBrush, e.Bounds, StringFormat.GenericDefault);
            e.DrawFocusRectangle();
             
        }

        private void comboBox1_DrawItem(object sender, DrawItemEventArgs e)
        {
            if (e.Index < 0)
            {
                return;
            }
            e.DrawBackground();
            e.DrawFocusRectangle();
            e.Graphics.DrawString(comboBox1.Items[e.Index].ToString(), e.Font, new SolidBrush(e.ForeColor), e.Bounds.X, e.Bounds.Y + 3);
        }

        private void comboBox1_MouseMove(object sender, MouseEventArgs e)
        {
            this.ForeColor = Color.White;
        }

        private void comboBox1_MouseLeave(object sender, EventArgs e)
        {
            this.ForeColor = Color.Black;
        }

        

       

       
    }



------解决思路----------------------

    private void comboBox1_MouseMove(object sender, MouseEventArgs e)
        {
            this.ForeColor = Color.White;
        }
 
        private void comboBox1_MouseLeave(object sender, EventArgs e)
        {
            this.ForeColor = Color.Black;
        }


这两句不对吧
------解决思路----------------------
你用同一种颜色肯定是这样的
应该有e.ForeColor之类的属性吧

没有的话,没有的话,判断当前项目状态,选中赋值个其他颜色
  相关解决方案