我使用下面的代碼來獲得一個TextBox未繪製其邊界:如何將字體保留在繼承的TextBox中?
public partial class CustomTextBox : TextBox
{
public CustomTextBox()
{
InitializeComponent();
SetStyle(ControlStyles.UserPaint, true);
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
int borderWidth = 1;
ControlPaint.DrawBorder(e.Graphics, e.ClipRectangle,
Color.Transparent, borderWidth, ButtonBorderStyle.Solid,
Color.Transparent, borderWidth, ButtonBorderStyle.Solid,
Color.Transparent, borderWidth, ButtonBorderStyle.Solid,
Color.Transparent, borderWidth, ButtonBorderStyle.Solid);
}
}
我似乎錯過OnPaint()方法的內在的東西,因爲我的字體不是默認字體的文本框了(也許我必須重寫另一個事件)。
當檢查CustomTextBox.Font屬性它讓我看到默認的「微軟SANSSERIF在8,25」,但鍵入文本到我的文字方塊字體肯定看起來更大和大膽。
希望你能幫幫我!
問候,
INNO
[編輯]
我應該指出,如果我不重寫的OnPaint我CustomTextBox的字體是正確的。只有當重寫OnPaint時,我的字體不正確(當輸入文字時字體更大並且看起來像是粗體)。 所以我覺得我必須做些什麼來正確初始化字體的OnPaint內(但ATM我不知道如何做到這一點)。
將這兩種方法添加到我的CustomTextBox類中,但沒有成功。不管怎麼說,還是要謝謝你。 – Inno 2009-08-03 13:17:30