2017-05-04 2 views
1

Ich benutze Visual Studio 2010, ich erstellte eine Datenrasteransicht, die 2 Spalten hat. Textspalte, die andere ist Kombinationsfeld Spalte.DatagridView Combobox Expanding Problem

 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"; 

Ich habe die Kombinationsfeldspalte mit Werten gefüllt, die der Benutzer wählen muss. Um mein Leben einfacher zu machen, habe ich ein Objekt erstellt, mit dem ich mich an die Datenrasteransicht binden und abrufen werde, wenn der Benutzer fertig ist.

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; 
    } 

} 

die Eigenschaft Option so verwendet wird, wenn das Kombinationsfeld gesetzt ist, wird in dem Objekt diese Eigenschaft festgelegt, und ich kann die Datenquelle des Datengitters Ansicht abzurufen, nachdem ich Auswählen von Werten in der Combo-Box fertig bin pro Element in der Liste, die gebunden ist.

Ich stehe auf ein Problem, dass, wenn das Formular geladen wird, und die Elemente sind begrenzt, das Kombinationsfeld wird nicht erweitert, um mir die Elemente in anzuzeigen. Wenn ich OptionValue voreinstelle, wird der Kombinationsfeldwert auf diesen Optionswert gesetzt, aber nicht geändert, und das Kombinationsfeld wird nicht erweitert. Was verursacht das?

Antwort

0

Ich habe es gelöst, es stellt sich heraus, dass ich einige Eigenschaften ändern musste. Ich setze das EnableEditing auf True auf dem DGV, und ich setze die schreibgeschützte Eigenschaft auch auf dem gesamten DGV auf False.