2017-05-04 49 views
1

我使用Visual Studio 2010中,我創建了一個數據網格視圖,其中有2列。 文本欄,另一欄是組合框。DataGridView的組合框擴大發行

 private System.Windows.Forms.DataGridViewTextBoxColumn eqNameClmn; 
     private System.Windows.Forms.DataGridViewComboBoxColumn ClmnCabinetOptions; 

     this.eqNameClmn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; 
     this.eqNameClmn.DataPropertyName = "Name"; 
     this.eqNameClmn.HeaderText = "Cabinet/Mdf"; 
     this.eqNameClmn.Name = "eqNameClmn"; 
     this.eqNameClmn.ReadOnly = true; 
     // 
     // ClmnCabinetOptions 
     // 
     this.ClmnCabinetOptions.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; 
     this.ClmnCabinetOptions.DataPropertyName = "OptionValue"; 
     this.ClmnCabinetOptions.DisplayStyle = System.Windows.Forms.DataGridViewComboBoxDisplayStyle.ComboBox; 
     this.ClmnCabinetOptions.HeaderText = "Display Options"; 
     ClmnCabinetOptions.DataSource= 
     new object[] { 
     "Include Blocks and Cables", 
     "Include Blocks", 
     "None"}; 

     this.ClmnCabinetOptions.Name = "ClmnCabinetOptions"; 

我已經填寫了組合框的值,用戶將不得不從中選擇。 爲了讓我的生活更輕鬆,我創建了一個對象,我將使用該對象綁定到數據網格視圖,並在用戶完成時進行檢索。

public public class NeEquipmentDgvObj { 

    public NeEquipment NeEquipment; 
    public string Name { get; set; } 
    public bool IncludeBlocks; 
    public bool IncludeCables; 
    public string OptionValue { get; set; } 
    public NeEquipmentDgvObj(NeEquipment equipmentOb) { 

     Name = equipmentOb.EquipmentName; 
     NeEquipment = equipmentOb; 
     IncludeBlocks = false; 
     IncludeCables = false; 
    } 

} 

財產OptionValue將被使用,因此,當設置組合框,這個屬性被設置於對象中,我在組合框中選擇完值後,我可以檢索數據網格視圖的數據源綁定列表中的每個項目。

我遇到了一個問題,每當表格被加載,並且項目是有界的,組合框不會擴大給我看內的項目。如果我預設了OptionValue,則組合框的值將被設置爲該選項值,但不會更改,組合框不會展開。這是什麼造成的?

回答

0

我把它解決了,事實證明,我不得不改變一些屬性。 我在DGV上將EnableEditing設置爲True,並在整個DGV上將只讀屬性設置爲false。