为什么我不能将Label的BackColor设置为Transparent?我以前做过,但现在它只是不想......
我创建了一个新的UserControl,添加了一个进度条和一个标签.当我将标签的BackColor设置为透明时,它仍然是灰色的= /为什么会这样?
我想要的是将标签放在进度条的顶部,以便其文本"在"进度条中"...
我正在使用以下代码来获取未绘制边框的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);
}
}
Run Code Online (Sandbox Code Playgroud)
我似乎错过了OnPaint()内部的某些内容,因为我的Font不再是textBox的默认Font(也许我必须重写另一个事件)。
当检查CustomTextBox.Font属性时,它会向我显示默认的“ Microsoft SansSerif in 8,25”,但在我的textBox中键入文本时,字体肯定显得更大且加粗。
希望你能帮我!
问候,
no
[编辑]
我应该提到,如果不覆盖OnPaint,则CustomTextBox的字体是正确的。仅当覆盖OnPaint我的字体不正确时(键入文本时,字体较大且看起来为粗体)。因此,我认为我必须做一些事情才能在OnPaint内部正确初始化字体(但是ATM我不知道该怎么做)。