相关疑难解决方法(0)

为什么WinForms标签不希望透明的原因?

为什么我不能将Label的BackColor设置为Transparent?我以前做过,但现在它只是不想......

我创建了一个新的UserControl,添加了一个进度条和一个标签.当我将标签的BackColor设置为透明时,它仍然是灰色的= /为什么会这样?

我想要的是将标签放在进度条的顶部,以便其文本"在"进度条中"...

c# transparency winforms

29
推荐指数
4
解决办法
3万
查看次数

如何在继承的TextBox中保留Font?

我正在使用以下代码来获取未绘制边框的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我不知道该怎么做)。

.net c# user-controls winforms

3
推荐指数
1
解决办法
2592
查看次数

标签 统计

c# ×2

winforms ×2

.net ×1

transparency ×1

user-controls ×1