我有2個groupboxes,我想定製一些,我不想求助於具有標籤的面板(這將意味着我會有如果我需要一個邊框,則面板和父控件的背景顏色相同,因爲標籤必須設置顏色才能覆蓋文字背後的邊框)。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
即可輕鬆解決。不過,我想檢測文本的x和寬度測量值,以便我可以正確定位邊框。
有沒有人有任何想法如何做到這一點?我在Google上看了一段時間,但沒有發現任何內容。我知道標題是通過GroupBox.Text
設置的。
也請說出是否有任何其他測量可能需要,基於我改變邊框的粗細,所以如果字體很小但邊界是10像素開始半邊向下看起來很奇怪。 。
在此先感謝。
問候,
理查德
感謝這應該工作一種享受! – ClarkeyBoy 2010-10-30 09:19:11