none
MDI - форма и DataGridView. Проблема отображения. RRS feed

  • Вопрос

  • Имеется родительская MDI-форма. В ней открывается дочернеяя форма, в которой, в свою очередь, размещён DataGridView. Источником данных для DataGridView является DataTable. При открытии дочерней формы DataGridView создается следующим образом:

    DataGridViewTextBoxColumn col0 = new DataGridViewTextBoxColumn();
    col0.Name = "col0"; col0.HeaderText = "Код испытания";
    col0.DataPropertyName = "codisp";
    DataGridViewTextBoxColumn col1 = new DataGridViewTextBoxColumn();
    col1.Name = "col1"; col1.HeaderText = "Значение испыт.";
    col1.DataPropertyName = "value";
    dataGridView1.Columns.AddRange(col0, col1);
    dataGridView1.DataSource = dt;
    но в зависимости от значения ячейки расположенной в столбце col0 ячейка столбца col1 может быть DataGridViewTextBoxCell или DataGridViewComboBoxCell, т.е. за вышеприведённым кодом следует:
    for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
    {
      DataGridViewRow row = dataGridView1.Rows[i];
      DataGridViewTextBoxCell cell0 = new DataGridViewTextBoxCell();
      row.Cells[0] = cell0;
      if (dataGridView1[0, i].Value.ToString() == "314")
      {
      DataGridViewComboBoxCell cell1 = new DataGridViewComboBoxCell();
      cell1.Items.AddRange("соотв.", "не соотв.");
      row.Cells[1] = cell1;
      }
      else
      {
      DataGridViewTextBoxCell cell1 = new DataGridViewTextBoxCell();
      row.Cells[1] = cell1;
      }
    }
    Проблема заключается в том, что при открытии дочерней формы, в тех ячейках, в которые должны быть DataGridViewComboBoxCell на самом деле размещён DataGridViewTextBoxCell. Но как только  я вторую форму открываю не как дочернюю а как обычную sdi то всё отображается как надо.
    Если кто сталкивался с такой проблемой -  помогите пожалуйста.
    P.S. MSDN по поводу MDI форм выучил наизусть.
    • Перемещено Tagore Bandlamudi 1 октября 2010 г. 22:58 MSDN Forums consolidation (От:Visual C#)
    11 февраля 2010 г. 16:20