2014-03-03 34 views
-1

帮助!一直努力手动添加一个DataGridViewRow行与一个预先填充的组合框...一个DataGridViewComboBoxColumn是确切的。我只是想拥有它自动串填充,航运选择“地面”,“空气”,等等。到目前为止,我已经变得如看到下拉框中的第一个值,但系统说手动添加DataGridViewRow与预先填充的组合框:DataGridViewComboBoxColumn

System.ArguementException: DataGridViewComboBoxCell value is not valid

...我从来没有能够'下降'组合框控件(打开它) 我想创建列,并自动填充组合框和它的字符串值,但我最近一直与“DataGridViewComboBoxCell”混淆,我希望我最终不需要......谢谢我,我已经死了!

DataGridViewComboBoxCell myCbox = new DataGridViewComboBoxCell(); //TEST TBD  
    // 
    if ((dgvMasterPrinting.Columns == null) || (dgvMasterPrinting.Columns.Count < 1)) 
    { 
    DataGridViewComboBoxColumn dgcShipType = new DataGridViewComboBoxColumn(); 

    //Column SHIP-TO COMBOBOX      
    dgcShipType.Name = "colComboShip"; //??? 
    //dgcShipType.DataPropertyName = "colComboShip"; //TEST TBD 
    dgcShipType.HeaderText = "colComboShip"; 
    dgcShipType.DropDownWidth = 90; 
    dgcShipType.Width = 90; 
    dgcShipType.MaxDropDownItems = 5; 
    dgcShipType.DisplayIndex = 5; 
    dgcShipType.FlatStyle = FlatStyle.Flat; 
    myCbox.Items.AddRange("A", "N", "P", "S", "Z"); 
    // dgcShipType.Items.AddRange("A", "N", "P", "S", "Z"); 

    //add the other columns (works fine, only the combo box column has problems) 
    this.dgvMasterPrinting.Columns.Add(dgcShipType); 
    } 
    this.dgvMasterPrinting.Rows.Add(... 

我做了一个简单的测试:使用设计,使单一的DatagridviewComboBoxColumn和添加项目。搞笑的是这将导致一个错误:“theDataGridViewComboBoxCell值无效” ......我看到谈谈在WWW上,有一个固有的缺陷MS潜伏内...

回答

0

NM我想通了......

    DataGridViewComboBoxColumn dgcShipType = new DataGridViewComboBoxColumn(); 
... 
//Column SHIP-TO COMBOBOX      
        dgcShipType.ReadOnly = false; 
        dgcShipType.AutoComplete = false; 
        dgcShipType.DisplayStyleForCurrentCellOnly = true; 
        dgcShipType.DropDownWidth = 100; 
        dgcShipType.Width = 110; 
        dgcShipType.HeaderText = "ShipType"; 
        dgcShipType.Items.AddRange(new object[] { "GROUND", "LOCAL PATIENT", "3-DAY UPS", "2-DAY SERVICE", "PRIORITY OVERNT", "EARLY AM", "WILL CALL" }); 
        dgcShipType.Name = "colComboShip"; 
        dgcShipType.MaxDropDownItems = 7; 
        dgcShipType.Resizable = System.Windows.Forms.DataGridViewTriState.True; 
        dgcShipType.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; 
        dgcShipType.DefaultCellStyle.NullValue = "GROUND"; //sets the default display value 
        dgcShipType.DisplayIndex = 5; 
        // 
... 
this.dgvMasterPrinting.Rows.Add(...