2017-01-12 10 views
0

나는 내 Windows 양식 응용 프로그램에 datagridview를 가지고 있습니다. datagridview에는 3 개의 열이 있습니다. 첫 번째 열은 Combobox입니다. 콤보 상자에 항목을 추가하려고하는데 작동 중입니다. 여기기존 datagridview comboBox 열의 combobox에 항목 추가

foreach (int counter=0; counter<5; counter++) 
     { 
     this.dataGridView1.Rows.Add(); 

     DataGridViewComboBoxCell cbCell = new DataGridViewComboBoxCell(); 
     cbCell.Items.Add("Male"); 
     cbCell.Items.Add("Female");     
     dataGridView1.Rows[counter].Cells[0] = cbCell; 

     dataGridView1.Rows[counter].Cells[1].Value = firstname[counter]; 

     dataGridView1.Rows[counter].Cells[2].Value = lastname[counter];      

    } 

그리드 5 행에 도시되는 코드 (C 언어 번호)이다. 하지만 첫 번째 콤보 상자 열은 모든 콤보 상자에 항목이 없습니다.

도와주세요. 감사합니다. .

답변

1

코드에 열이 구성되는 방법이 표시되어 있지 않으므로 코드에 DataGridViewComboBoxColum이 사용되지 않았지만 문제가 무엇인지 알기가 어렵습니다. DataGridViewComboBoxColumn은 0 열의 모든 행을 "남성", "여성"선택 항목이있는 콤보 상자로 만드는 데 필요한 모든 것입니다.

잘못된 형식의 foreach 루프가 잘못되어 컴파일되지 않습니다. 나는 for 루프를 찾고 있다고 가정합니다. 이 다음에 for 루프 ... 새 행이 올바르게 눈금에 추가됩니다. 그런 다음 새 DataGridViewComboBoxCell이 만들어지고 현재 행의 셀 [0]이 추가됩니다. dataGridView1.Rows[counter].Cells[0] = cbCell;. 이 셀 [0]은 모든 새로운 행에 추가됩니다.

DataGridViewViewComboBoxColumn이 올바르게 설정된 경우에는 필요하지 않습니다. DataGridViewComboBoxCell을 추가하면 완벽하게 유효하며 기본적으로 콤보 상자를 "단일"셀에 넣을 수 있습니다. 그러나이 방법을 사용하면 콤보 상자 자체의 사용이 의심 스럽습니다.

루프가 dataGridView1에 데이터를 "추가"합니다. 데이터를 읽으면서 "성별"(남성, 여성)에 대한 부분이 누락 된 것으로 나타나 다른 값과 마찬가지로 값이 설정되지 않습니다. 예 : 같은 아래 라인이되지 않습니다 :

dataGridView1.Rows[counter].Cells[0].Value = gender[counter]; 

이 정보를 개최 "성별"배열, 다음 코드는 콤보 위의 코드의 라인에이 값 (남성, 여성)을 설정하는 경우가 있었다면 상자 열이 자동으로 콤보 상자 선택을 해당 값으로 설정합니다. 데이터는 두 값 중 "1"(1)입니다.

그래서 아래의 코드는 콤보 상자 셀에 데이터를 읽을 때주의의 DataGridViewComboBoxColumn

단어를 사용하는 방법을 보여줍니다 당신이 찾고있는 것을 가정 할; 콤보 상자 열의 문자열 데이터가 콤보 상자 항목 목록의 항목 중 하나와 일치하지 않으면 잡히지 않고 해결되지 않으면 코드가 충돌합니다. 값이 빈 문자열이면 콤보 상자는 선택한 값을 비어있게 설정합니다.

// Sample data 
string[] firstname = { "John", "Bob", "Cindy", "Mary", "Clyde" }; 
string[] lastname = { "Melon", "Carter", "Lawrence", "Garp", "Johnson" }; 
string[] gender = { "Male", "", "Female", "", "Male" }; 
// Create the combo box column for the datagridview 
DataGridViewComboBoxColumn comboCol = new DataGridViewComboBoxColumn(); 
comboCol.Name = "Gender"; 
comboCol.HeaderText = "Gender"; 
comboCol.Items.Add("Male"); 
comboCol.Items.Add("Female"); 
// add the combo box column and other columns to the datagridview 
dataGridView1.Columns.Add(comboCol); 
dataGridView1.Columns.Add("FirstName", "First Name"); 
dataGridView1.Columns.Add("LastName", "Last Name"); 
// read in the sample data 
for (int counter = 0; counter < 5; counter++) 
{ 
    dataGridView1.Rows.Add(gender[counter], firstname[counter], lastname[counter]); 
} 

희망이 있습니다.

+0

감사합니다. JohnG –