2011-12-15 1 views
1

DataGridview 및 셀 DataGridViewComboboxCell이있는 열이 있습니다. DisplayStyle은 Nothing으로 설정됩니다. 입력을 시작하면이 셀의 스타일이 콤보 박스로 변경됩니다. 그리고 내 텍스트를 제공하는 텍스트에 따라 셀 검색 항목 때문에 내 tekst를 제공 할 수 없습니다. 콤보 상자와 마찬가지로 콤보 박스로 스타일을 변경하고 싶습니다. 내 텍스트를 입력 할 수있는 빈 필드가 있습니다. 콤보 박스에서이 작업을 수행 할 수 있습니까?DisplayStyle ComboBoxList로 콤보 박스 셀을 만드는 방법은 무엇입니까?

감사

+1

같은 시도 ..... –

+0

예 감사합니다. – Robert

답변

2

는이 같은 시도 할 수 있습니다 ..

public void ComboList1() 
    { 
     DataGridViewComboBoxColumn combo1 = new DataGridViewComboBoxColumn(); 
     combo1.HeaderText = "Country"; 
     combo1.Items.Add("Antarctica"); 
     combo1.Items.Add("Belgium"); 
     combo1.Items.Add("Canada"); 
     combo1.Items.Add("Finland"); 
     combo1.Items.Add("Albania"); 
     combo1.Items.Add("India"); 
     combo1.Items.Add("Barbados"); 
     dataGridView1.Columns.Add(combo1); 
    } 
    public void ComboList2() 
    { 
     DataGridViewComboBoxColumn combo2 = new DataGridViewComboBoxColumn(); 
     combo2.HeaderText = "Types of Jobs"; 
     combo2.Items.Add("Accounting"); 
     combo2.Items.Add("HR"); 
     combo2.Items.Add("Finance"); 
     combo2.Items.Add("Transportation"); 
     combo2.Items.Add("Testing"); 
     dataGridView1.Columns.Add(combo2); 
    } 

전화 모두 형식 생성자에서 이러한 메서드.

지금 DataGridView를 클릭하고 EditingControlShowing 이벤트를 생성하고 그 안에 folllowing 코드를 작성 :

 if (e.Control is DataGridViewComboBoxEditingControl) 
     { 
      ((ComboBox)e.Control).DropDownStyle = ComboBoxStyle.DropDown; 
      ((ComboBox)e.Control).AutoCompleteSource = AutoCompleteSource.ListItems; 
      ((ComboBox)e.Control).AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; 
     } 

또는 당신이 autocompletecombobox 유형을 찾고 생각이

private string[] list; 
private DataSet ds; 

public frmMain() 
{ 
    InitializeComponent(); 
    ds = this.GetDataSet("SELECT deptName from empDept", "empDept"); 
    list = new string[ds.Tables[0].Rows.Count]; 
    comboBox1.AutoCompleteCustomSource.AddRange(list); 
    comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
    comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems; 
} 


private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) 
{ 
    if (e.Control is ComboBox) 
    { 
    ComboBox cb = e.Control as ComboBox; 
    cb.DropDownStyle = ComboBoxStyle.DropDown; 

    } 
}