我正在尝试在C#中编写一个程序( console initialized ),它动态初始化一组窗体。
这是一项允许用户同时管理多个电台的锦标赛计划。
所以,我提出的最好的东西就像用户想要管理三个电台一样。
TournamentForm[] T = new TournamentForm[3];
void startTournament()
{
for (int count = 0; count < t.length; count++)
{
T[count] = new TournamentForm();
T[count].show();
}
}
这种方法的固有问题是,在每个循环结束时,表单都会关闭。
是否有动态初始化Windows窗体的方法,或者我是否需要长时间编写最大数量的窗口实例?
所以我一直在用这个论坛作为思想板......拍我。我更喜欢早期在我的想法中拍摄的洞。
@Bas这里是编译
的代码namespace Tournament_2._1
{
class Program
{
static MainWindow[] test = new MainWindow[2];
static void Main(string[] args)
{
StartTournament();
}
private static void StartTournament()
{
for (int count = 0; count < test.Length; count++)
{
test[count] = new MainWindow();
test[count].Show();
}
}
}
}
当for循环在Main()方法中时(即使在单步执行每一行时)我缺少的是窗口在Main()方法结束时关闭,而不是在每个循环结束时关闭
为了尝试管理这个问题,我尝试了几种暂停控制台的方法,但没有一种方法可以将重点放在表单上。
同样的问题,不同的位置。
答案 0 :(得分:1)
它是“Windows窗体应用程序”项目吗?
在“Program.cs”中:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
在MainForm上添加“btnStart”按钮。
对于此按钮,请在单击时添加事件处理程序。
在MainForm.cs中:
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void btnStart_Click(object sender, EventArgs e)
{
Form[] t = new Form[3];
for (int count = 0; count < t.Length; count++)
{
t[count] = new Form();
t[count].Show();
}
}
}
这样,循环后表单不会关闭。
答案 1 :(得分:0)
您没有显示所有代码,事实上,您展示的代码甚至无法编译......(Show
而不是show
)。没有更多代码,我们所能做的就是猜测。
我推测,但我认为发生的是在您生成三个表单,退出应用程序并关闭刚刚创建的三个表单后关闭MainForm
。