2016-06-08 3 views
0

하나의 양식에 6 개의 콤보 박스가 있습니다. 배열에 있습니다. 이들은 cboClient (5)를 통해 cboClient (0)라고합니다. 내가 여기서 할 노력하고있어 값 각 CBO가 동일한 항목 목록으로 채워됩니다콤보 박스 확인

if cboclient(0)<>"" and not isnull(cboClient(0)) then 
    'Do this 
End if 

의 라인을 따라 그렇게 뭔가가 있다는 것을 확인합니다. 내 목표는 사용자가 하나 이상의 cbo에서 동일한 선택을 할 수 없도록하는 것입니다. 기본적으로 cboClient (0)에서 항목 1을 선택하면 해당 항목을 다른 cbo에서 선택할 수 없습니다.

가능한 한 적은 수의 라인에서이 작업을 수행 할 수있는 방법을 찾으려고 노력 중입니다. 잠재적으로이 작업을 수행 할 수 있습니다. 그러나 다른 사람들과 비교하여 각 cbo를 확인해야하므로 상당히 길어질 수 있습니다.

if cboClient(0).text <> cboClient(1).text then 
    msgbox "OK" 
Else 
    msgbox "Please choose again" 
End if 

필자는 어떻게 든 루프로 작성하려고합니다. 각 cbo에서 .text를 확인하고 동일한 두 가지 선택이 이루어지지 않았는지 확인하십시오. 어떤 생각?

EDIT : 나는 6 개의 cbo가있다 - 각각에 동일한 데이터 (데이터 번호 1에서 10까지)가 채워진다. 사용자가 cboClient (0)에서 "1"을 선택하면 다른 cbo에서 이것을 선택할 수 없습니다. 나는 그들을 반드시 숨길 필요는 없다. 그러나 일단 SAVE를 클릭하면 CBO를 실행하고 동일한 항목을 두 번 이상 선택했는지 확인하는 기능을 원한다.

EDIT 2 "두 항목을 가질 수 없습니다, 당신의 선택을 수정"말을 그들에게있는 MsgBox를주고 싶다 :

어쩌면 두 개의 루프를 할 - 또 다른 내에서 하나 ... 그런

dim a as integer 
dim b as integer 

for a = 0 to 5 
    for b = 1 to 5 
     if cboClient(a).text <> cboclient(b).text then 
      'keep going 
     else 
      MsgBox "you have made the same selection" 
     End if 
    next b 
next a 

뭔가 ?

+1

태그를 제목 VB.NET 거짓말이어야한다. VB.NET에는 제어 배열이 없습니다. 어쨌든, 내가 선택한 것은 다른 콤보 상자가 선택되면 모든 다른 콤보 상자에서 해당 항목을 제거 *하는 것입니다. 그렇게하면 사용자가 실수로 그것을 선택할 수 없습니다. 메시지 상자보다 훨씬 친숙한 UI. 예, 루프를 사용할 수 있습니다. 실제 문제가 무엇인지는 명확하지 않습니다. –

+0

태그에 대해 사과드립니다. 나는 6 개의 cbo를 가지고있다 - 각각은 동일한 데이터 (데이터 번호 1에서 10까지)로 채워진다. 사용자가 cboClient (0)에서 "1"을 선택하면 다른 cbo에서 이것을 선택할 수 없습니다. 나는 그들을 반드시 숨길 필요는 없다. 그러나 일단 SAVE를 클릭하면 CBO를 실행하고 동일한 항목을 두 번 이상 선택했는지 확인하는 기능을 원한다. MsgBox에 "선택 항목을 수정하면 두 항목을 가질 수 없습니다." – LD16

+0

다중 선택 목록 상자가 더 적절할 것 같습니다. – Plutonix

답변

1

이 코드보십시오 :

For i = 0 To 5 
    For j = 0 To 5 
     If i <> j And cboClient(i).Text = cboClient(j).Text Then 
      MsgBox "You must choose diffirent values, Please choose again" 
      Exit Sub 
     End If 
    Next 
Next 
+0

감사합니다! 나는 똑같은 것을 생각하고있었습니다. 훌륭한 결과를 얻었습니다. 나는 모든 값들을 반복하지 않고 MSGBOX를 처음 선택했을 때 중복 선택을합니다. – LD16

+1

듣기 좋습니다! 내가 중복 된 선택을 처음 쳤을 때 메시지를 보여줄 코드를 바꾼다! 고마워요. :) –