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

时间:2014-08-16 03:32:01

标签: c# winforms

以下是我在运行时对标签所做的事情:(C#)

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

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

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

标签的自动调整大小为假。

现在,我哪里做错了?

更新

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

1 个答案:

答案 0 :(得分:0)

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

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;
    }
}
相关问题