2009-05-19 15 views
0

在我們的應用程序中,我們將有幾個查找器對話框。查找器對話框的UI很簡單(文本框,datagridview結果,確定按鈕,取消按鈕)。不同對話框之間唯一真正的變化是一些標籤文本和網格綁定源。我們希望強制執行某些屬性(如全行選擇和只讀模式)和事件(如單擊和雙擊),以便當有人想要添加對話框時,我們知道用戶將獲得一致的行爲,因爲該對話框實現了相同屬性和事件,我們的應用程序中的每個其他對話實現。DataGridView確保應用程序的一致性

我創建了一個基本查找表單,其中包含一些屬性和ok/cancel按鈕及其點擊事件。我卡在datagridview。在我們的一個查找器對話框中,確保所有datagridview具有相似特徵的最佳方法是什麼?

回答

0

今天我實現了一個從DataGridView下降的自定義網格(DataGridViewFinder)。此網格僅適用於我們的查找器對話框。該網格具有默認屬性設置,以便與我們所有其他查找器網格保持一致。另外,因爲我知道這種類型的網格只會在查找器對話框中,所以我重寫了一些將在基本查找器上設置屬性和調用方法的事件。

我喜歡這種方法,因爲它確保了當我滴在取景器對話框我的自定義網格,某些屬性和事件都已經爲我處理。會有很多發現者對話框,我懷疑這會節省很多時間。有沒有人看到這個實現有什麼問題?

protected override void OnEnter(EventArgs e) 
{ 
    base.OnEnter(e); 
    if (Parent is BaseFinder) 
    { 
     (Parent as BaseFinder).Mode = FinderMode.Ok; 
    } 
} 

protected override void OnDoubleClick(EventArgs e) 
{ 
    base.OnDoubleClick(e); 
    if (Parent is BaseFinder) 
    { 
     (Parent as BaseFinder).btOk_Click(this, e); 
    } 
} 
2

如果不同的對話框之間的唯一區別是一些標籤的文本,並在DataGridView的綁定源,爲什麼不直接使用所有的對話框相同的形式?你可以很容易地通過表單公開你可以控制這些差異的屬性。

+0

我不想放鬆在網格上設置綁定數據源時得到的一些visual studio設計時間的東西。也許我應該創建一個從DataGridView繼承下來的網格並強制執行這些屬性和方法。 – 2009-05-19 16:47:04

相關問題