3

OK ...インターネットを検索しましたが、入力が間違っているか、わかりません。いずれにせよ、私が持っているのは2つのWindowsフォームです(私はC#でコーディングしています)。Form1とForm2。Form1にはボタンが1つあります。このボタンをクリックすると、Form2が開きます。私が使用しているもの:

Form2 frm2 = new Form2();
frm2.Show();

このフォームの複数のインスタンスを開きたいので、frm2.Showを使用したいと思います。

今のところ、このフォームのインスタンスを4つだけ開きたいということです。

Form1のボタンをクリックすると、開くはずです。3回クリックすると、Form2が3回開くはずです。そのうちの2つを閉じると、残りは1つだけになります。次に、もう一度3回クリックすると、4回目はForm2が開かないはずです。

フォームのインスタンスがいくつあるかを知る方法はありますか?なぜなら

if statement 

仕事をしません。

4

1 に答える 1

7

Application.OpenFormプロパティを使用して、開いているフォームの数を確認できます。何かのようなもの。

int formCount = Application.OpenForms.Cast<Form>().Count(r => r.Name == "Form2");
if (formCount > 4)
    Console.WriteLine("Already 4 instances of the forms are open");
于 2013-01-08T07:58:45.680 に答える