动态Windows窗体初始化

时间:2015-04-01 02:02:44

标签: c# winforms

我正在尝试在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()方法结束时关闭,而不是在每个循环结束时关闭

为了尝试管理这个问题,我尝试了几种暂停控制台的方法,但没有一种方法可以将重点放在表单上。

同样的问题,不同的位置。

2 个答案:

答案 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