小编Jac*_*i36的帖子

覆盖ComboBox的DrawItem

我更改了各种控件的突出显示颜色,并计划进行更多更改。因此,我最好创建自己的控件并重用它们,而不是为每个控件进行更改。

我创建了一个新的用户控件,并继承自System.Windows.Forms.ComboBox。问题是我找不到onDraw像我那样的方法来覆盖onClick

那么我将如何去覆盖它呢?这是我用于每个控制onDraw事件的代码

public void comboMasterUsers_DrawItem(object sender, DrawItemEventArgs e)
    {
        e.DrawBackground();

        Graphics g = e.Graphics;
        Brush brush = ((e.State & DrawItemState.Selected) == DrawItemState.Selected) ?
                      Brushes.LightSeaGreen : new SolidBrush(e.BackColor);

        g.FillRectangle(brush, e.Bounds);
        e.Graphics.DrawString(comboMasterUsers.Items[e.Index].ToString(), e.Font,
                 new SolidBrush(e.ForeColor), e.Bounds, StringFormat.GenericDefault);

        e.DrawFocusRectangle();
    }
Run Code Online (Sandbox Code Playgroud)

谢谢!

c# inheritance controls combobox ondraw

0
推荐指数
1
解决办法
6925
查看次数

标签 统计

c# ×1

combobox ×1

controls ×1

inheritance ×1

ondraw ×1