更改标签中的文本使文本对齐不起作用?

以下是我在运行时用标签完成的工作:(C#)

label.Text = sometext;
label.TextAlign = ContentAlignment.MiddleCenter;

label.Invalidate();
label.Update();
label.Refresh();
label.PerformLayout();

在窗口显示之后,在此代码运行之前,默认文本在中间中心完美对齐。 这段代码运行后,文本左上角对齐。

标签的autosize为false。

现在,我在哪里做错了?

更新:

我发现了一个部分解决方案,但不知道为什么对我自己的问题:将“UseCompatibleTextRendering”设置为true将使文本在文本修改后没有任何5行代码的情况下正确对齐。 但这没有意义。 是不是新的文字渲染应该是更好的,旧的渲染暴露我的视觉文物等?


我试图重现你的问题,但不能。 我建议你修改这个简单的代码来尝试重现你的问题:

class FormD : Form {

    Label lb = new Label { Text = "ABCDEFG", Size = new Size(200, 200), TextAlign = ContentAlignment.MiddleCenter, BackColor = Color.RosyBrown, UseCompatibleTextRendering = true };

    public FormD() {
        Controls.Add(lb);
    }

    [STAThread]
    static void Main(String[] args) {
        Application.SetCompatibleTextRenderingDefault(false);

        Form f2 = new FormD();
        Application.Run(f2);
        return;
    }
}
链接地址: http://www.djcxy.com/p/63655.html

上一篇: Changing text in label make text align not working?

下一篇: How would I run an async Task<T> method synchronously?