У меня есть 2 групповых ящика, которые я бы хотел настроить немного больше, и я не хочу прибегать к панели с меткой (это означало бы, что я буду иметь для того чтобы иметь тот же цвет фона для панели и родительского элемента управления, если мне нужна граница, поскольку метка должна иметь набор цветов, чтобы скрыть границу за текстом).C# Groupbox - настройка внешнего вида и надписи
мне удалось изменить цвет границы, захватив событие рисования и, используя следующий код:
Graphics gfx = e.Graphics;
Pen p = new Pen(Color.FromArgb(86, 136, 186), 3);
GroupBox gb = (GroupBox)sender;
Rectangle r = new Rectangle(0, 0, gb.Width, gb.Height);
gfx.DrawLine(p, 0, 5, 0, r.Height - 2);
gfx.DrawLine(p, 0, 5, 10, 5);
gfx.DrawLine(p, 62, 5, r.Width - 2, 5);
gfx.DrawLine(p, r.Width - 2, 5, r.Width - 2, r.Height - 2);
gfx.DrawLine(p, r.Width - 2, r.Height - 2, 0, r.Height - 2);
Моя проблема заключается в том, что, как это, если подпись слишком долго, то он перекрывает границу. Поскольку он перекрывает левую границу границы вверху - это легко решить, просто отрегулировав вторую линию DrawLine
. Однако я хотел бы определить размеры и ширину текста, чтобы я мог правильно расположить границы.
Есть ли у кого-нибудь идеи, как это сделать? Некоторое время я смотрел на Google, но на меня ничего не выпрыгивало. Я знаю, что подпись установлена в GroupBox.Text
.
Пожалуйста, также скажите, есть ли какие-либо другие измерения, которые могут мне понадобиться, исходя из того, что я меняю толщину границы, поэтому было бы странно, если бы шрифт был крошечным, но граница была 10 пикселей, начиная с половины пути вниз. .
Заранее спасибо.
С уважением,
Ричард
Спасибо, что это должно сработать! – ClarkeyBoy