2013-06-03 2 views
0

임 텍스트 상자에이 간단한 기능에 문제가 .. 나는이 같은 자동 완성 설정 텍스트 상자와 윈폼 응용 프로그램이 있습니다텍스트 상자 자동 완성 기능은 C#에서의 WinForm 응용 프로그램에서 자동 완성하지

if (rbSerialNumSearch.Checked) 
{ 
     txtSerialNum.Enabled = true; 
     AutoCompleteStringCollection data = new AutoCompleteStringCollection(); 

     //Test data 
     data.Add("555-777-333"); 
     data.Add("222-333-444"); 
     data.Add("111-222-333"); 

     txtSerialNum.AutoCompleteCustomSource = data; 

     txtSerialNum.AutoCompleteMode = AutoCompleteMode.Suggest; 

     txtSerialNum.AutoCompleteSource = AutoCompleteSource.CustomSource; 
} 

그러나 그것을 작동 안됨. 텍스트 상자에 입력 할 때 아무 것도 나타나지 않습니까? 문자열을 디자인 모드에서 직접 텍스트 상자 컬렉션 속성에 지정하면 잘 작동하지만 문자열을 프로그래밍 방식으로 추가하려고하면 아무 일도 일어나지 않습니까? 사전에

감사합니다 .. 여기 FORM에 대한

전체 코드 :

namespace GUI 
{ 
    public partial class UpdateEquipmentForm : Form 
    { 
     EquipmentManager em; 
     ProductManager pm; 
     CategoryManager cm; 

     public UpdateEquipmentForm() 
     { 
      InitializeComponent(); 
      em = new EquipmentManager(); 
      pm = new ProductManager(); 
      cm = new CategoryManager(); 
     } 

     private void btnSearch_Click(object sender, EventArgs e) 
     { 
      if (rbCategorySearch.Checked) 
      { 
       List<Equipment> equipments = em.GetAllEquipmentInStock().Where(eq => eq.Product.Category_Id == (int)cbChooseCategory.SelectedValue).ToList(); 

       var resultset = (from eq in equipments 
           select new { eq.Product.ProductNameNum, eq.Id, eq.SerialNumber, eq.InvoiceNumber, eq.CreatedDate, eq.ExpiryDate, eq.FirstUseDate }).ToList(); 

       dgvResult.DataSource = resultset; 
      } 
      if (rbProductsSearch.Checked) 
      { 
       List<Equipment> equipments = em.GetAllEquipmentInStock().Where(eq => eq.Product.Id == (int)cbChooseType.SelectedValue).ToList(); 

       var resultset = (from eq in equipments 
           select new { eq.Product.ProductNameNum, eq.Id, eq.SerialNumber, eq.InvoiceNumber, eq.CreatedDate, eq.ExpiryDate, eq.FirstUseDate }).ToList(); 

       dgvResult.DataSource = resultset; 
      } 
      if (rbSerialNumSearch.Checked) 
      { 
       List<Equipment> equipments = em.GetAllEquipmentInStock(); 

       var resultset = (from eq in equipments 
           where eq.SerialNumber.Contains(txtSearchEquipment.Text) 
           select new { eq.Product.ProductNameNum, eq.Id, eq.SerialNumber, eq.InvoiceNumber, eq.CreatedDate, eq.ExpiryDate, eq.FirstUseDate }).ToList(); 

       dgvResult.DataSource = resultset; 
      } 
     } 

     private void rbCategorySearch_CheckedChanged(object sender, EventArgs e) 
     { 
      if (rbCategorySearch.Checked) 
      { 
       cbChooseCategory.Enabled = true; 
       cbChooseCategory.DataSource = cm.GetAllActiveCategories(); 
       cbChooseCategory.DisplayMember = "Name"; 
       cbChooseCategory.ValueMember = "Id"; 
      } 
      else 
      { 
       cbChooseCategory.Enabled = false; 
      } 
     } 

     private void rbProductsSearch_CheckedChanged(object sender, EventArgs e) 
     { 
      if (rbProductsSearch.Checked) 
      { 
       cbChooseType.Enabled = true; 
       cbChooseType.DataSource = pm.GetAllActiveProducts(); 
       cbChooseType.DisplayMember = "ProductNameNum"; 
       cbChooseType.ValueMember = "Id"; 
      } 
      else 
      { 
       cbChooseType.Enabled = false; 
      } 
     } 

     private void rbSerialNumSearch_CheckedChanged(object sender, EventArgs e) 
     { 
      if (rbSerialNumSearch.Checked) 
      { 
       txtSerialNum.Enabled = true; 
       AutoCompleteStringCollection data = new AutoCompleteStringCollection(); 

       data.Add("555-777-333"); 
       data.Add("222-333-444"); 
       data.Add("111-222-333"); 

       txtSerialNum.AutoCompleteCustomSource = data; 

       txtSerialNum.AutoCompleteMode = AutoCompleteMode.Suggest; 

       txtSerialNum.AutoCompleteSource = AutoCompleteSource.CustomSource; 
      } 
      else 
      { 
       txtSerialNum.Enabled = false; 
      } 
     } 
    } 
} 
+0

은 어디에서이 코드를 실행할 수 없습니다.

는 노력 guys..thanks을 감사합니다! 내가 txtSearchSerial하지 txtSerialNum. 도현라고 참조해야 하나 :-(잘못된 텍스트 상자를 참조했다? 당신은 실행 않는다 그것은 무엇입니까? – EaterOfCode

+0

라디오 버튼 checkedchanged 이벤트에서 코드가 실행됩니다. 라디오 버튼에 의해 선택된 3 개의 검색 chriterias가 있습니다.이 중 하나가 – MartinChristensen

+0

(rbSerialNumSearch.Checked) {}? –

답변

0

당신은

 txtSerialNum.Enabled = true; 

에 브레이크 포인트를 설정할 수 있습니다 나는이 응용 프로그램이 블록으로 실행되지 않습니다 생각합니다.

또는이 코드 뒤에 txtSerialNum의 바인딩을 다시 설정합니다.

+0

시도한 디버깅. 라디오 버튼을 선택할 때 코드를 잘 실행합니다. -/ – MartinChristensen

1

문제를 발견했습니다. 정말 나 멍청합니다. 나는

+0

재밌 네요. 모두들 실수는 없습니다. – EaterOfCode

관련 문제