我正在尝试为文本文件的每一行动态创建一个新按钮。
我的问题是,无论文本文件有多少行,它都只生成一个按钮。
代码:
System.IO.StreamReader file = new System.IO.StreamReader
(@"D:\SupportDash\Settings\Settings.txt");
string[] lines = System.IO.File.ReadAllLines(@"D:\SupportDash\Settings\Settings.txt");
foreach(String row in lines)
{
Button Buttona = new System.Windows.Forms.Button();
Buttona.Text = "Test";
Buttona.UseVisualStyleBackColor = true;
Buttona.Location = new System.Drawing.Point(85,28);
Buttona.Click += (s, e) =>
{
Form DynamicForm = new Form();
DynamicForm.Show();
};
groupBox2.Controls.Add(Button);
counter++;
}
file.Close();
}
我也尝试过使用while和do-while循环。 - 同样的事情发生了。
我的文本文件由回车符分隔。 (它使用File.ApendAllText()生成在程序中;)
这个问题是由我的程序引起的,只是认为有一条巨大的线?
答案 0 :(得分:2)
您将所有按钮放在同一个Location
,因此可能看起来只有一个按钮,实际上每行只有一个按钮,它们只是彼此重叠。
每次循环时尝试递增位置Top
或使用支持包装的面板控件。
答案 1 :(得分:0)
您需要将每个新按钮定位在新位置,例如
您的设置
Buttona.Location = new System.Drawing.Point(85,28);
调用类似
的内容var buttonHeight = 10;
Buttona.Location = new System.Drawing.Point(85,28 + (count * buttonHeight ));
你实际上是创建了多个按钮,但它们都是彼此重叠的。