2011-06-30 46 views
0

我有一個關於datagridviewcell的問題。 我已經在datagridview中創建了文本框列。當我點擊特定單元格時,單元格應該更改爲datagridviewcomboboxcell。另外我需要添加組合框中的項目。 當我去到另一個單元格,然後,新的細胞得到datagridviewcombobox細胞和現有的小區應更改爲datagridviewtextbox細胞...Gridview - 將文本框轉換爲組合框並返回

+0

任何一個可以幫助我plzzz – user822915

回答

1

你可以改變DataGridViewTextBoxCellDataGridViewComboBoxCellCellBeginEdit事件,並改回在CellEndEdit事件。

試試這個:

 private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) 
     { DataGridViewComboBoxCell cb=new DataGridViewComboBoxCell(); 
      cb.Items.Add(dataGridView1.CurrentCell.Value); 
      //add your other itmes here; 
      dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex] = cb;//change the DataGridViewTextBoxCell to DataGridViewComboBoxCell 
     } 

     delegate void settexthandler(DataGridViewCellEventArgs e); //use delegate to prevent reentrant call 

     private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) 
     { 
      dataGridView1.BeginInvoke(new settexthandler(settoTextBox), new object[] { e });   
     } 

     void settoTextBox(DataGridViewCellEventArgs e) 
     { 
      DataGridViewTextBoxCell tb = new DataGridViewTextBoxCell(); 

      tb.Value = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value; 
      dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex] = tb; //set it back to DataGridViewTextBoxCell with newly selected value 
     } 
+0

其工作...... thanks..buddyy..but這不是下拉啓用... – user822915

+0

你是什麼*啓用下拉意味着* ? – Bolu