我想为面板中的文件中的每一行添加一个按钮。 到目前为止我的代码是:
StreamReader menu = new StreamReader("menu.prefs");
int repetition = 0;
while(!menu.EndOfStream)
{
Button dynamicbutton = new Button();
dynamicbutton.Click += new System.EventHandler(menuItem_Click);
dynamicbutton.Text = menu.ReadLine();
dynamicbutton.Visible = true;
dynamicbutton.Location = new Point(4+repetition*307, 4);
dynamicbutton.Height = 44;
dynamicbutton.Width = 203;
dynamicbutton.BackColor = Color.FromArgb(40,40,40);
dynamicbutton.ForeColor = Color.White;
dynamicbutton.Font = new Font("Lucida Console", 16);
dynamicbutton.Show();
menuPanel.Controls.Add(dynamicbutton);
repetition++;
MessageBox.Show(dynamicbutton.Location.ToString());
}
menu.Close();
问题是只创建了第一个控件。
最佳答案
代码看起来不错,但可能会出现以下情况。
1.您可能在文件中只有一个条目,因此您遇到的只是添加到面板的一个按钮。
2.您的面板宽度小于所有动态按钮宽度的总和。
我怀疑没有 2 是导致问题的主要原因。
因此,我建议您使用 FlowLayoutPanel .添加动态内容,因为它会自动布局所有子控件。
关于C# 循环添加控件到面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6406868/