7

我正在开发一个 Windows 窗体应用程序。我想将文本对齐到中心或说到表单标题栏的右侧。我该怎么做 ??

4

4 回答 4

16

可以使用自定义表单来完成 - 您必须创建自己的标题栏。见 V4Vendettas 评论;

其他方法(链接) - 是为表单调整大小创建自己的处理程序并在那里插入后续代码。它将从文本的左侧大小添加适当数量的空格。但是,您必须添加 form.Refresh() 并在 form.Load 中调用该方法;你的窗口也会有“...”作为任务栏中的文本。

private void UpdateTextPosition()
{
    Graphics g = this.CreateGraphics();
    Double startingPoint = (this.Width / 2) - (g.MeasureString(this.Text.Trim(), this.Font).Width / 2);
    Double widthOfASpace = g.MeasureString(" ", this.Font).Width;
    String tmp = " ";
    Double tmpWidth = 0;

    while ((tmpWidth + widthOfASpace) < startingPoint)
    {
       tmp += " ";
       tmpWidth += widthOfASpace;
    }

    this.Text = tmp + this.Text.Trim();
}
于 2012-08-14T07:19:12.767 回答
0

如果它是控件内的文本(如标签),则可以编辑名为“TextAlign”的属性以在 Windows 窗体设计器中完成所需的操作。

或以编程方式,

Label.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;

如果您正在谈论对齐标题栏的文本,则无法通过 Winforms 做到这一点。你将不得不使用这样的东西:http: //www.codeproject.com/Articles/93959/WinForm-Extended

于 2012-08-14T07:10:30.797 回答
0
 Graphics g = this.CreateGraphics();
        double fw = this.Width; // form width
        double tw = g.MeasureString(this.Text.Trim(), this.Font).Width; \\ text width
        double rp = (fw - tw) / 2;
        int tt = Convert.ToInt32(rp); 
        string st = " ";
        st = st.PadRight(tt / 3);
        this.Text = st + this.Text.Trim();
于 2020-03-13T18:06:01.573 回答
-4

Inside Windows Form Designer. Make the changes like this.lable1.AutoSize = false;

Then:

this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
于 2012-08-16T10:24:00.020 回答