Я использую следующий код, чтобы получить 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 (), потому что мой шрифт больше не является шрифтом по умолчанию для textBox (возможно, мне придется переопределить другое событие).
При проверке свойства CustomTextBox.Font отображается стандартное «Microsoft SansSerif in 8,25», но при вводе текста в мой textBox шрифт определенно выглядит больше и жирнее.
Надеюсь, вы можете мне помочь!
С уважением,
Inno
[EDIT]
Я должен упомянуть, что если я не переопределю OnPaint, шрифт моего CustomTextBox будет правильным. Только при переопределении OnPaint мой шрифт неверен (при наборе текста шрифт больше и кажется жирным).
Поэтому я думаю, что мне нужно что-то сделать, чтобы правильно инициализировать шрифт внутри OnPaint (но я не знаю, как это сделать в банкомате).