南山五味子
2021-06-18 10:48
采纳率: 0%
浏览 26

DataGridViewComboBoxCell 下拉框为什么无效呢?

                            0         1         2         3

  1. strRock = "页岩;泥页岩;白云岩;煤岩";
                dataGridView5.DataSource = dtStratum;
                string colName = dtStratum.Columns[colNo].ColumnName;
                string colAdd = "Rock";
                if (bFisrt)
                {
                    DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn();
                    column.Name = colAdd;
                    //List<KeyValuePair<int, string>> items= new List<KeyValuePair<int, string>>();
                    //DataTable dtItems = new DataTable(colAdd);
                    //dtItems.Columns.Add(colAdd);
                    //for (int i = 0; i < strRock.Split(';').Length; i++)
                    //{
                    //    dtItems.Rows.Add(new object[] { strRock.Split(';')[i] });
                    //    column.Items.Add(strRock.Split(';')[i]);
                    //}
                    column.DataSource = strRock.Split(';');
                    column.DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox;
                    //column.ValueMember = "Key";
                    //column.DisplayMember = "Value";
                    column.DefaultCellStyle.NullValue = strRock.Split(';')[0];
                    dataGridView5.Columns.Insert(colNo + 1, column);
                    bFisrt = false;
                }

                foreach (DataGridViewRow row in this.dataGridView5.Rows)
                {
                    DataGridViewComboBoxCell cell = row.Cells[colAdd] as DataGridViewComboBoxCell;
                    cell.Value = strRock.Split(';')[int.Parse(row.Cells[colName].Value.ToString())];
                    if (row.Cells[colName].Value != null && cell != null)
                    {
                        int rowNo = int.Parse(row.Cells[colName].Value.ToString());
                        string val = strRock.Split(';')[rowNo];
                        cell.Style.NullValue = val;
                        cell.Value = val;
                        dataGridView5.UpdateCellValue(cell.ColumnIndex, cell.RowIndex);
                    }
                    row.Cells[colAdd].Value = strRock.Split(';')[int.Parse(row.Cells[colName].Value.ToString())];
                }

     

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

相关推荐 更多相似问题