2010-04-07 49 views
1

在C#Winform應用程序(3.5)中,有許多表單,每個表單都有不同的控件。雖然每個listview控件使用不同的數據集,但每個數據集的基本格式保持不變。C# - 通用的方式來格式化listview控件的表單?

基本格式採用以下格式:

/* appearance */ 
    this.lstA.View = View.Details; 
    this.lstA.AllowColumnReorder = true; 
    this.lstA.CheckBoxes = false; 
    this.lstA.FullRowSelect = true; 
    this.lstA.GridLines = false; 
    this.lstA.Sorting = SortOrder.Ascending; 

我想要做的就是創建一個可以用來設置列表視圖的初始格式的類。

如何將listview(通過引用?)傳遞給該類,以便可以設置外觀屬性?

回答

3

要添加到其他的答案:

public static class MyExtensionMethods 
    { 
     public static void InitializeAppearance(this ListView aListView) 
     { 
      aListView.View = View.Details; 
      aListView.AllowColumnReorder = true; 
      aListView.CheckBoxes = false; 
      aListView.FullRowSelect = true; 
      aListView.GridLines = false; 
      aListView.Sorting = SortOrder.Ascending; 
     } 
    } 
} 

,你叫它listview1.InitializeAppearance();

+0

謝謝,效果很好。 – 2010-04-07 19:20:44

4

也許你可以繼承ListView的子類,然後設置你的默認功能,然後在你正在使用正常的ListView的任何地方使用你的子類ListView。

2

您可以通過引用來傳遞控件來做到這一點,但從長遠來看,僅僅子類化ListView並設置所需的默認值可能會更容易。

+0

你如何一個窗體上放置一個子類的ListView? – Asher 2010-04-07 17:05:55

+0

@Asher創建它後,我會通過Visual Studio中的「工具」菜單下的「選擇工具箱項目」將其添加到工具欄。當我的表單可見時,子類控制將可用於從工具箱中拖放(或雙擊)。 – 2010-04-07 17:16:14

+0

剛剛嘗試過這種方式,而子類的listView在工具欄上沒有添加它! – Asher 2010-04-07 17:27:58

2

我覺得你有幾種選擇,不知道哪一個是最適合你的,但你可以考慮:

  1. 創建從ListView的繼承,並在任何你需要的構造函數中設置的類。在你的表格中使用這個類。無論如何,如果你需要相同的外觀,這很好。
  2. 用靜態方法SetListViewAppearance(ListView controlToSet)創建一個類。在這種方法中,你可以設置任何你需要的。這將需要您在每個表單中調用此方法之前,可能在表單加載事件。

我會去第一個解決方案,除非你有一些限制。

相關問題