Убрать выделение ToolStripMenuItem

149
20 апреля 2018, 13:21

Можно ли убрать выделение ToolStripMenuItem при наведении и оставить только рамку?

Answer 1

Можно написать свой Renderer в котором переопределить отрисовку для выделенных пунктов :

class BorderOnlyToolStripRenderer : ToolStripProfessionalRenderer
{
    protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e)
    {
        var item = e.Item;
        if (!item.Selected)
        {
            //если пункт не выделен, вызываем стандартную отрисовку
            base.OnRenderMenuItemBackground(e);
            return;
        }
        //в противном случае просто рисуем прямоугольник
        using (var p = new Pen(ColorTable.MenuItemBorder))
        {
            //возможно границы нужно будет подправить с учетом Padding
            var bounds = new Rectangle(Point.Empty, item.Size);
            e.Graphics.DrawRectangle(p, bounds.X, bounds.Y, bounds.Width - 1, bounds.Height - 1);
        }
    }
}

Затем применить его к меню:

menuStrip1.Renderer = new BorderOnlyToolStripRenderer();

Еще вариант: создать свою таблицу цветов в которой переопределить (установить одинаковые) цвета для выделенных и невыделенных пунктов меню. Но в этом случае нужно будет ориентироваться на цвет фона каждого отдельного пункта меню.

READ ALSO
MS VS компилирует exe “как подозрительное ПО”

MS VS компилирует exe “как подозрительное ПО”

Добрый деньПоставил систему DeepIN на VMware и появилось необходимость запустить сторонний

157
DataGridView медленно работает после установки AutoSizeColumnsMode и/или AutoSizeRowsMode

DataGridView медленно работает после установки AutoSizeColumnsMode и/или AutoSizeRowsMode

После установки значений AutoSizeColumnsMode и/или AutoSizeRowsMode производительность рендеринга datagridView падает почти до 0 и это при 5 записях

164
Можно ли на кнопку Bootstrap 4 повесить два события?

Можно ли на кнопку Bootstrap 4 повесить два события?

Есть два дива в навигационном менюНадо сделать так чтобы чтобы при нажатии на одну и ту же кнопку один див скрывался а второй появлялся

174