2011-06-16 39 views
1

我想創建一個具有一個主表單的應用程序,它具有一個功能=添加新表單。在一個主表單中使用多種形式進行設計應用

我不知道如何創建表單,它們是由用戶動態創建的(主表單中的AddForm方法)。

所有的子表格都是相同的,但是他們中的一些可以接收不同的參數(它可以在ctor或更高版本中)。

我想在關閉主窗體時關閉所有窗體。

在新窗體顯示之前我想要顯示設置窗體(採取窗體參數)也許用ShowDialog方法,並驗證窗體上的檢查,只是如果窗體驗證新窗體將顯示,如果沒有(或如果用戶請求取消)表單將被處理。

我知道aboout MDI,但我真的很喜歡其他方式

任何想法?

謝謝!

回答

0

想法很簡單創建一個應用程序,打開一個主窗體的開始,然後打開其他窗體,如果需要的話,如果你關閉主窗體,其餘窗體也關閉。就像在GIMP中一樣。

1

關閉主窗體關閉時的所有窗體有點容易,只需在「子窗體」窗體的Show()方法中傳遞主窗體引用;例如如果你顯示的是主要的孩子,你可以這樣做:

child.Show(this);

如果您的主窗體不是真正的「程序的主要形式」,但您想關閉所有「子窗體」窗體,則需要完成此操作。

但是,將所有這些連接在一起最好在某個特殊的類中完成,可以稱爲ScreenRepository。在這個類中,任何時候你都會有一個開放的表單集合,你可以將表單創建放到這個類中(這樣這個類會自動注入表單父類)等等......讓這個類很容易重新激活(給焦點)形式,如果它落後於其他形式,如果需要等創建新形式...