2
我有一組框,我不喜歡在Visual Studio中可是沒有邊框顏色屬性提供的groupbx所以我用這個代碼來創建自己的組框。UI毛刺在我的計劃寫在自己的組框
public class MyGroupBox : GroupBox
{
private Color _borderColor = Color.Black;
public Color BorderColor
{
get { return this._borderColor; }
set { this._borderColor = value; }
}
protected override void OnPaint(PaintEventArgs e)
{
//get the text size in groupbox
Size tSize = TextRenderer.MeasureText(this.Text, this.Font);
Rectangle borderRect = e.ClipRectangle;
borderRect.Y = (borderRect.Y + (tSize.Height/2));
borderRect.Height = (borderRect.Height - (tSize.Height/2));
ControlPaint.DrawBorder(e.Graphics, borderRect, this._borderColor, ButtonBorderStyle.Solid);
Rectangle textRect = e.ClipRectangle;
textRect.X = (textRect.X + 6);
textRect.Width = tSize.Width;
textRect.Height = tSize.Height;
e.Graphics.FillRectangle(new SolidBrush(this.BackColor), textRect);
e.Graphics.DrawString(this.Text, this.Font, new SolidBrush(this.ForeColor), textRect);
}
}
其作品「精」,我給自己買了一個黑色邊框組框,而不是灰色的,當移動窗口中的組框毛刺出來,像這樣除了,
是有這個修復或者我將不得不使用Visual Studio組框來防止此問題?我正在使用C#winforms
我剛剛使用了你的groupbox,它沒有這樣做,你如何初始化你的(不需要控制內部),所以我可以重現它 – EpicKip
不要使用'e.ClipRectangle'。改爲使用'this.ClientRectangle'。 –
@EpicKip它剛剛從工具箱中抓起來 – WhatsThePoint