2010-04-21 3 views
0

지금 질문을 변경하고 있습니다!목록보기의 검색 기능

//check the array for a match 
     foreach (Delivery d in mainForm.myDeliveries) 
     { 
      if (d.DeliveryName == searchValue) 
      { 
       ListViewItem item = lstDeliveryDetails.Items.Add(d.DeliveryName); 
       item.SubItems.Add(d.DeliveryAddress); 
       item.SubItems.Add(d.DeliveryDay); 
       item.SubItems.Add(d.DeliveryTime); 
       item.SubItems.Add(d.DeliveryMeal); 
       item.SubItems.Add(d.DeliveryInstructions); 
       item.SubItems.Add(d.DeliveryStatus); 

      } 
     } 

내 질문은, 이제 다른 모든 값을 검색 할 수있는 가장 좋은 방법은 무엇이다, 완벽한 검색을 위해 :

내가 검색이 (가) 사용하여 다음 작업을했다? 다른 진술을하고 주소, 요일, 시간 등을 처리 할 수 ​​있음을 알고 있습니다.

이것을 달성하는 더 좋은 방법이 있습니까? 그리고 현재 사용자는 결과를 얻기 위해 전체 이름을 입력해야합니다. 이름의 일부만 입력하면 만들 수 있습니까?

답변

0

지우기 모든 목록보기에서 항목 만 검색 조건에 일치하는 사람을 추가

lstDeliveryDetails.Clear(); 
for (int i = 0; i < myDeliveries.Count; i++) 
{ 
    Delivery d = (Delivery)mainForm.myDeliveries[i]; 

    if (d.DeliveryName == searchValue) 
     lstDeliveryDetails.Items.Add(d.DeliveryName); 
} 
+0

이름 'item'이 (가) 현재 컨텍스트에 없습니다. – sark9012

+0

@Luke를 lstDeliveryDetails.Items.Add (d.DeliveryName)로 변경하십시오. 마찬가지로 하위 항목도 추가해야합니다. – Amsakanna

+0

하하, 나는 내 방식의 오류를 깨닫고 당신이 쓴 것을 보았습니다! 어떤 이유로, 그것은 listview에서 아무 것도 반환하지 않습니다. ( – sark9012

0

같은 디스플레이가 배달 목록 인수를 허용하도록 법 (또는 배열)을 변경

private void displayDeliveries(List<Delivery> deliveries) 

하고 btnSearch에서의 정의에 따라

을 변경 목록에서 선택한 배달의 목록을 얻고 displayDeliveries 방법으로 통과

귀하의 목록보기에 당신은 또한 의해 증분 검색을 시도 할 수 있습니다

업데이트

사용자로부터 키워드를 얻고이

if (d.DeliveryName.Contains(searchValue)) 

처럼 확인 인수로 mainForm.myDeliveries을 보내 초기화하는 동안 목록이 작은 경우 TextBox의 TextChanged 이벤트를 처리합니다.