我正在开发Windows窗体应用程序。我想将文本对齐到中心或对表格的标题栏右侧说。我该怎么办?
答案 0 :(得分:15)
可以使用自定义表单完成 - 您必须创建自己的标题栏。见V4Vendettas评论;
其他方法(link) - 是为表单大小调整创建自己的处理程序并插入后续代码。它将从左侧文本大小添加适当数量的空格。但是,您必须添加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();
}
答案 1 :(得分:0)
如果它是控件内部的文本(如标签),则可以编辑名为“TextAlign”的属性,以在Windows窗体设计器中完成所需的操作。
或以编程方式
Label.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
如果您正在谈论对齐标题栏的文本,则无法通过Winforms执行此操作。你必须使用这样的东西:http://www.codeproject.com/Articles/93959/WinForm-Extended
答案 2 :(得分: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();
答案 3 :(得分:-4)
Windows窗体设计器内部。进行类似this.lable1.AutoSize = false
;
然后:
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;