2014-01-27 3 views
-1

확인란 상자의 확인란을 선택하면 checkbox.text가 목록 상자에 추가됩니다. 그러나 확인란의 선택을 취소하면 checkbox.text가 목록 상자에서 제거됩니다. 그러나 문제는 목록 상자에서 선택한 항목을 제거하는 방법을 모르겠다는 것입니다. 내가 CheckBox1을, checkbox2, checkbox3을 검사 할 때 예를 들어선택을 취소 할 때 항목을 제거합니다.

[Press here to see the picture][2]<br>

, 목록 상자는
CheckBox1을 checkbox2 checkbox3

그러나를 표시합니다 내가 체크 박스, 내가 갇혀 여전히 같은 의 선택을 취소 할 때 여기에. 도와주세요 !! 이 항상 Text 속성에 무엇이든 삭제됩니다

private void checkBox1_CheckedChanged(object sender, EventArgs e) 
{ 
    if (checkBox1.Checked) listBox1.Items.Add(checkBox1.Text); 

} 

private void checkBox2_CheckedChanged(object sender, EventArgs e) 
{ 
    if (checkBox2.Checked) listBox1.Items.Add(checkBox2.Text); 
} 

private void checkBox3_CheckedChanged(object sender, EventArgs e) 
{ 
    if (checkBox3.Checked) listBox1.Items.Add(checkBox3.Text); 
} 

private void checkBox4_CheckedChanged(object sender, EventArgs e) 
{ 
    if (checkBox4.Checked) listBox1.Items.Add(checkBox4.Text); 
} 

답변

0

private void checkBoxCheckedChanged(object sender, EventArgs e) 
     { 
      CheckBox cb = sender as CheckBox; 
      if (cb != null) 
       if (cb.Checked) listBox1.Items.Add(cb.Text); else listBox1.Items.Remove(cb.Text); 
     } 

그런 다음 모든 CheckedChanged 이벤트로 확인란을 선택합니다.

+0

감사합니다. 내 하루를 저장하십시오. 하지만 질문이 있습니다. 체크 박스가 많은 경우 checkBoxCheckedChanged (보낸 사람, 전자)를 추가하는 대신 바로 가기가 있습니다. 각 checkbox_CheckedChanged 이벤트에서? – sky91

+0

모두 선택하고 해당 일정을 추가하십시오. –

5
if (checkBox3.Checked) 
    listBox1.Items.Add(checkBox3.Text); 
else 
    listBox1.Items.Remove(checkBox3.Text); 

참고 :

여기 내 코드입니다. 즉, 확인란을 선택하고 textBoxX의 텍스트를 변경 한 다음 선택을 취소하면 다른 항목이 제거됩니다.

1

Items 컬렉션은 Remove 방법을 사용합니다. CheckedChanged 개의 이벤트에 else를 넣고 Remove 메소드를 사용합니다.

if (checkBox4.Checked) listBox1.Items.Add(checkBox4.Text); 
else listBox1.Items.Remove(checkBox4.Text); 
0

Remove() 메서드를 호출하십시오. 제거 할 항목을 지정하는 하나의 인수를 승인합니다.

private void checkBox1_CheckedChanged(object sender, EventArgs e) 
{ 

    if (checkBox1.Checked) 
     listBox1.Items.Add(checkBox1.Text); 

    else 
     listBox1.Items.Remove(checkBox1.Text); 

} 

private void checkBox2_CheckedChanged(object sender, EventArgs e) 
{ 

    if (checkBox2.Checked) 
     listBox1.Items.Add(checkBox2.Text); 

    else 
     listBox1.Items.Remove(checkBox2.Text); 

} 

private void checkBox3_CheckedChanged(object sender, EventArgs e) 
{ 
    if (checkBox3.Checked) 
     listBox1.Items.Add(checkBox3.Text); 

    else 
     listBox1.Items.Remove(checkBox3.Text); 

} 

private void checkBox4_CheckedChanged(object sender, EventArgs e) 
{ 
    if (checkBox4.Checked) 
     listBox1.Items.Add(checkBox4.Text); 

    else 
     listBox1.Items.Remove(checkBox4.Text); 

} 
1

일반적인 기능을 수행하고 전화를 겁니다. 예 :

private void addRemove(CheckBox chk) 
{ 
if (chk.Checked) 
    listBox1.Items.Add(chk.Text); 
else 
    listBox1.Items.Remove(chk.Text); 
} 

전화

addRemove(checkbox1); 
0

만약 그게 당신이 모든 체크 박스에 동일한 이벤트를 할당하지 왜 싶어 아래 모든 일 : - 당신은 하나의 funciton을 할 수

CheckBox chkBox=(CheckBox)sender; 
if (chkBox.Checked) 
    listBox1.Items.Add(chkBox.Text); 
else 
    listBox1.Items.Remove(chkBox.Text); 
+0

모든 checkbox_CheckedChanged 이벤트를 하나의 이벤트로 할당하여 쉽게 처리 할 수있는 방법은 무엇입니까? – sky91

+0

http://www.dotnetperls.com/button에서이 이벤트가 속성 창에서 할당 됨 –

+0

나는 아직도 당신이 의미하는 것을 얻을 수 없다. 예를 들어 주시겠습니까? – sky91