Как я могу удалить тень от выпадающего списка ComboBox в WinForms? - PullRequest
0 голосов
/ 11 марта 2019

Я искал везде и пробовал все, что знаю, но, похоже, не могу найти способ избавиться от этого CS_DROPSHADOW, встроенного во всплывающее окно DropDown из элемента управления ComboBox.

Вот как это выглядит сейчас:

enter image description here

И вот как я хочу, чтобы это выглядело:

enter image description here

Как мне этого добиться?

Обновление: я перепробовал каждую комбинацию свойств и не смог обойти ее.Как они установлены сейчас:

DropDownStyle = DropDownList

FlatStyle = Flat

DrawMode = OwnerDrawFixed

И вот что реализовано DrawItem:

if (sender is ComboBox cbx)
{
    e.DrawBackground();

    if (e.Index >= 0)
    {
        StringFormat sf = new StringFormat
        {
            LineAlignment = StringAlignment.Center + 1,
            Alignment = StringAlignment.Center
        };

        if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
            e.Graphics.FillRectangle(new SolidBrush(Color.Gainsboro), e.Bounds);
        else
            e.Graphics.FillRectangle(new SolidBrush(cbx.BackColor), e.Bounds);

    e.Graphics.DrawString(cbx.Items[e.Index].ToString(), cbx.Font, new SolidBrush(cbx.ForeColor), e.Bounds, sf);
    }
}
...