如何确保Winforms控件保持右对齐,无论字体设置如何?

时间:2011-10-06 09:24:49

标签: c# winforms

我有一个用c#编写的Windows窗体应用程序。我在面板中创建了复选框,文本框和按钮。当我在矩形监视器中运行它时遇到一些问题。

如果我使电脑字体大小正常(控制面板 - >外观和主题),则没有问题。文本框和按钮对齐位于右上角,可以正常工作。

但是,当我从控制面板文本框和按钮将计算机字体更改为更大时,向左移动。对齐不起作用。顺便说一下,我在运行时创建了所有内容。我使用这段代码:

tmin[i].Anchor = AnchorStyles.Right | AnchorStyles.Top;
tmax[i].Anchor = AnchorStyles.Right | AnchorStyles.Top;
gb[i].Anchor = AnchorStyles.Right | AnchorStyles.Top;

tmin和tmax是文本框的数组。 gb是按钮数组。我该怎么办?

修改

例如,tmax文本框数组的初始化是:

 height = 1;
 padding = 10;

 for (int i = 3; i < ff.documentColumnCount; i++)
 {                
   tmax[i] = new TextBox();
   tmax[i].Name = max + (i - 2).ToString();
   tmax[i].TabIndex = i;
   tmax[i].Size = new System.Drawing.Size(65, 20);
   tmax[i].Location = new System.Drawing.Point(326, 36 + i * 20);
   tmax[i].TextChanged += new System.EventHandler(tmax17_TextChanged);
   tmax[i].Bounds = new Rectangle(326, 20 + padding + height, 65, 22);
   tmax[i].Anchor = AnchorStyles.Right | AnchorStyles.Top;
   maxTextBoxes.Add(tmax[i]);
   panel5.Controls.Add(tmax[i]);
   height += 22;
}

2 个答案:

答案 0 :(得分:1)

不要使用锚点。改为使用Dock属性,并根据需要设置Min size。

答案 1 :(得分:0)

不是将控件锚定到表单的右边缘(这是AnchorStyles.Right的含义),而是将TextAlign property设置为HorizontalAlignment.Right,以便将文本设置为控制是右对齐的。