私のアプリケーションでは、一意の識別子を持っている間、フォームの新しいインスタンスを子として複数回開くことができるようにしたいと考えています。
現時点では、私はこのようにしています:
private int _consoleWindowCount = 0;
private void tsBtNewConsole_Click(object sender, EventArgs e)
{
_consoleWindowCount++;
var consoleForm = new ConsoleForm(_consoleWindowCount) { MdiParent = this };
consoleForm.FormClosing += delegate { _consoleWindowCount--; };
consoleForm.Show();
//This will open a new ConsoleForm with Text: Console #_consoleWindowCount
//Like:
// Console #1
// Console #2
}
現時点で 2 つの問題があります。
- MDIForm (mainForm) から、現在メイン フォームで開いている子フォームの Text プロパティによって、BringToFront や Close などをプログラムで実行できる可能性はありますか?
- 子フォームの一意の名前付けのこの方法が機能していないことを発見するのは天才ではありません。(同じフォームの) 5 つの子フォームを開くと、 のように番号が付け
Console #1
られConsole #5
ます。しかし、閉じConsole #4
て、新しいフォーム (同じフォームの!) を開くと、名前が付けられConsole #5
、同じ名前の 2 つのフォームが作成されます。これを修正できれば、フォームをユーザーが区別できるようになるのは素晴らしいことです。
そんな時のヒントをお待ちしております!