2017-03-22 6 views
-1

combobox1.text가 목록 항목과 일치 한 다음 추가 기능을 사용하려면 true로 설정하고 싶습니다. 사용자에게없는 경고 메시지 .. 지금까지 내가combobox.text가 목록 항목과 일치하는 경우 true를 얻는 방법

 bool itemExists = false; 
    foreach (object obj in comboBox1.Items) 
    { 
     itemExists = obj.Equals(comboBox1.Text); 
     if (itemExists) 
     { 
      itemExists = true; 
     } 
     break; 

    } 

    if (itemExists) 
    { 
     MessageBox.Show("good00"); 
    } 
    else 
    { 
     MessageBox.Show("sorry no value"); 
    } 
} 

또한

bool test ; 
    test = comboBox1.Items.OfType<object>().Any(cbi => cbi.Equals(comboBox1.Text)); 

    if (test) 
    { 
     MessageBox.Show("values matched"); 
    } 

    else 
    { 
     MessageBox.Show("not matched"); 
    } 

을 시도했지만 내가 원하는 것을 얻고 있지 않다 .. 그것이로 작동하는 경우는 있지만, 그것을 확인하는 combobox .text를 목록과 비교하면 일치하는 항목이 있으면 true를 반환하고 true 값은 추가 기능을 사용합니다. 일치가없는 경우는 ..

어떤 제안 ..

덕분에 ..

답변

1

을 허위 오류 메시지를 보내는 데 사용하는 false를 반환이 문장은 아무것도 수행합니다

if (itemExists) 
{ 
    itemExists = true; 
} 

break 바로 뒤에 무조건입니다. if 조건 내부를 이동하면 문제가 해결됩니다 :

if (itemExists) 
{ 
    break; 
} 

두 번째 접근 방식은 유형 string의 개체를 수정되지 않은 작동합니다. 모든 유형의 객체와 작업을 변경하려면 일치의 사용을

if (!itemExists) 
{ 
    MessageBox.Show("sorry no value"); 
} 
+0

감사가없는 경우에만 메시지를 표시하려면

test = comboBox1 .Items.OfType<object>() .Any(cbi => cbi.ToString() == comboBox1.Text); 

를 사용하지만, 더 일치하는 값이 자신없는 경우 메시지를 표시하는 방법에 대해 설명합니다. – speedyraz

+0

나는 내 질문을 업데이트했다. 내가 필요로하는 것에 대해 – speedyraz

+0

@speedyraz 나는 편집에서 추가 한 단락의 의미를 이해하지 못한다 : 당신의 방법은 아무 것도 반환하지 않는다; 일단 돌아 오면 그 방법에서 벗어나기 때문에 "돌아와서 그 값을 사용할 수"없습니다. 불일치로 종료하고 싶다면'MessageBox.Show' 호출 후 조건부에'return;'을 넣으십시오. – dasblinkenlight