2014-10-16 6 views
0

DataGridview에서 하나의 기존 열 콤보 상자 열을 만들 수 있었지만 여러 열을 어떻게 처리합니까? 또한 콤보 박스 항목에 기존 고유 레코드를 어떻게 추가합니까? 사용자는 콤보 상자 항목에서 값을 선택하거나 자신의 값을 쓸 수 있습니다. 지금까지 내 코드는 다음과 같습니다C# DataGridview에서 여러 콤보 상자 열을 설정하는 방법

  dgvLoadTable.DataSource = null; 
      var context = new CadAdminEntities(); 
      var TableName = cboSelectTable.Text.ToString(); 
      var rawData = context.GetType().GetProperty(TableName).GetValue(context, null); 
      var truncatedData = ((IQueryable<object>)rawData).Take(0); 
      var source = new BindingSource { DataSource = truncatedData }; 
      dgvLoadTable.DataSource = source; 
      dgvLoadTable.ReadOnly = false; 
      dgvLoadTable.AllowUserToAddRows = true; 

      DataGridViewComboBoxCell dgvCol = new DataGridViewComboBoxCell(); 

      for (int row= 0; row < dgvLoadTable.Rows.Count; row++) 
      { 
      for (int col = 0; col < dgvLoadTable.Columns.Count; col++) 
        { 
         if(col==2||col==4) 
         this.dgvLoadTable[col,row] = dgvCol; 
       //This part throws error, as there is only one combobox 
        } 
      } 

      dgvLoadTable.Refresh(); 

답변

0

이 쉽게 해결할 수 있습니다 :

this.dgvLoadTable[col, row] = new DataGridViewComboBoxCell(); 

각각의 경우에 대한 신선한 ComboBoxCell를 생성합니다.

당신은 종종 하나가 자동 성 있음을 끄고 모든 만들어야 당신이 데이터 바인딩 DGV과 열은 아마 자동으로 생성 된이 있기 때문에, 당신이 명심해야

DataGridViewComboBoxCell dgvCol = new DataGridViewComboBoxCell(); 

참고 선을 삭제할 수 있습니다 열을 수동으로 설정하기 전에 데이터 소스를 설정하십시오.

+0

감사합니다. D – feather

관련 문제