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

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条回答 默认 最新

  • 南山五味子 2021-06-18 10:58
    关注

    正确应该是:0 对应 页岩;1 对应 泥页岩; 2 对应 白云岩; 3 对应 煤岩

    评论

报告相同问题?

悬赏问题

  • ¥15 maixpy训练模型,模型训练好了以后,开发板通电会报错,不知道是什么问题
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容