ToolStripTextBoxЦветная рамка (border color) для элемента ToolStripTextBox по умолчанию отсутствует.

Есть только черная рамка по типу, может быть или не быть.

Меня это в корне не устраивало и погуглив и перепробовав дюжину вариантов, я нашел 1 самый простой вариант отрисовки цветной рамки..

Для начала я добавил на форму элемент StripTextBox и именем tsFindbyName:

1
private System.Windows.Forms.ToolStripTextBox tsFindbyName

В данном случае свойство BorderStyle можно установить в None.

Далее необходимо создать метод и привязать его к событию перерисовки элемента StripTextBox - Paint.

 событие перерисовки элемента StripTextBox

В данном случае метод будет назваться Form1_Paint и содержать следующий код:

1
2
3
4
5
6
private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Rectangle rect = new Rectangle(1, 1, 145, 18);
            rect.Inflate(1, 1);
            ControlPaint.DrawBorder(e.Graphics, rect, Color.Silver, ButtonBorderStyle.Solid);
        }

После сборки проекта мы увидим следующую границу :

StripTextBox - неверна граница

В данном случае построена сплошная рамка (ButtonBorderStyle.Solid) цветом Silver и толщиной в 1 пиксель.

Данный результат нас не вполне устраивает. Для корректной отрисовки правой и левой границы необходимо изменить внутренние интервалы для нашего элемента ToolStripTextBox. Например следующим образом. Скриншот ниже.

ToolStripTextBox - переопределение стандартного отступа

Далее пересобираем проект снова и видим вполне себе корректный результат.

StripTextBox - нормальная граница


28th Ноя 2016
Теги:
Загрузка Все права защищены © 2016 ИТ-Инженер (Краснодар)
 
把手拿回