0

次のようなコードを実行しようとしています:

while (true)
{ 
   counter++;
   Form f = new Form1();

   Application.Run(f);
}

Form1class に基づいてクラスを構成し、これをコマンドFormで実行する無限ループ。FormApplication.Run

問題は、初めて目にForm見えるものを取得できることですが、ループの次の反復ではフォームが表示されないことです。

誰?

しかし、最初にフォームが表示されるループに入ったときと、次回との違いは何ですか? 初めて変数スコープの問題がないのはなぜですか? さらに、ループの新しい反復ごとに、新しい Form1 変数を作成します。

4

2 に答える 2

0

同じフォームの無限のインスタンスを作成しようとしているのはなぜですか?

とにかく、これはあなたが何を得ようとしているのですか?このコードを確認してください

while(true){
       new Form1().show();
       System.Threading.Thread.Sleep(1000); 
}

新しいフォームが開いていることを示すために、アプリケーションを1秒間スリープするように設定しました。

編集:コードを確認しました。アプリを閉じようとすると、新しいフォームが開きます。フォームインスタンスがあるときにハンスが言ったように、ウィンドウがフォーカスを設定します。閉じると、作成されます。新しいもの。

于 2013-01-14T14:45:38.610 に答える
0

なぜそうしないのですか:

private void Form1_Load(object sender, EventArgs e)
{
    Thread p = new Thread(showform);
    p.Start();
}

private void showform()
{
    Form1 f = new Form1();
    f.Show();
}
于 2013-01-14T14:51:37.337 に答える