我有 winform,上面动态创建了 52 个单选按钮。 这是创建它们的方法:
private void CreateRadioButton()
{
int rbCount = 52;
int numberOfColumns = 23;
radioButtons = new RadioButton[rbCount];
int y = 520;
for (int i = 0; i < rbCount; i++)
{
radioButtons[i] = new RadioButton();
radioButtons[i].Text = Convert.ToString(i + 1);
if (i % numberOfColumns == 0)
y += 20;
var x = 11 + i % numberOfColumns * 50;
radioButtons[i].Location = new Point(x, y);
radioButtons[i].Size = new Size(40, 15);
//radioButtons[i].Anchor = AnchorStyles.Left;
//radioButtons[i].Anchor = AnchorStyles.Bottom;
radioButtons[i].Font = new Font(radioButtons[i].Font.FontFamily, 8, FontStyle.Bold);
radioButtons[i].UseVisualStyleBackColor = true;
radioButtons[i].Click += new EventHandler(rbtns_click);
xtraTab.Controls.Add(radioButtons[i]);
}
}
窗体最大化时出现问题。单选按钮消失。 如果我设置
radioButtons[i].Anchor = AnchorStyles.Left;
radioButtons[i].Anchor = AnchorStyles.Bottom;
单选按钮被覆盖。
如果调整表单大小,我该怎么做才能将它们的位置保持在同一位置?
最佳答案
这两行
radioButtons[i].Anchor = AnchorStyles.Left;
radioButtons[i].Anchor = AnchorStyles.Bottom;
意味着 anchor 值 AnchorStyles.Left
将被替换为 AnchorStyles.Bottom
AnchorStyles
有 Flags
属性集,枚举值可以组合:
radioButtons[i].Anchor = AnchorStyles.Left | AnchorStyles.Bottom;
如果通过设计器设置,在“Windows 窗体设计器生成的代码”中它看起来像这样:
this.radioButton1.Anchor = ((System.Windows.Forms.AnchorStyles)
((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
关于c# - 为动态创建的控件设置 anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42827753/