2013-12-19 6 views
1

if 문을 작성하여 확인란을 선택했는지 묻는 메시지를 표시하려고합니다. 확인란이 이미 선택되어 있으면 상자를 선택 취소하십시오. 아래는 내가 할 수있는 일이 없어 보인다. 감사! 누구든지이 일을하는 간단한 방법이 있다면 조언하십시오.확인란을 선택한 경우 다른 작업을 수행하십시오.

if (checkBox15.Checked == false) 
{ 
    MessageBox.Show("Are you sure you want to check this?", "Prompt", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) 
    { 
     Updatelist(); 
    } 
    else 
    { 
     checkBox15.Checked = false; 
     return; 
    } 
} 
else if (checkBox15.Checked == true) 
{ 
    checkBox15.Checked = false; 
    return; 
} 
+0

인가? 어떤 UI를 사용하고 있습니까? 창문 양식? – RononDex

+0

이것은 MouseClick 이벤트에 있습니다. –

답변

4

당신은 if(

if(MessageBox.Show("Are you sure you want to check this?", 
    "Prompt", 
    MessageBoxButtons.YesNo, 
    MessageBoxIcon.Question) == DialogResult.Yes) 
{ 
    Updatelist(); 
} 
else 
{ 
    checkBox15.Checked = false; 
    return; 
} 
+2

이것은 또한 *이 메서드가 호출되는 * 위치에 따라 다릅니다. 내부 검사가 이벤트 핸들러를 변경하면 무한 재귀 -> stackoverflow가 생성됩니다. 이 경우에는 부울 스위치를 사용해야 할 수도 있습니다. – Tigran

+0

@Tigran 그것은 재귀를 만듭니다. 전환 방법에 대한 제안 사항은 무엇입니까? –

+0

@hexc : 인스턴스를 부울 값으로 만들고 * before * checkBox15.Checked = false; 값을 전환합니다. 그리고 이벤트 처리기에서 그 부울이 참인지 확인하고, false로 설정하고 (원래 값으로 재설정) 리턴하므로 checkBox15.Checked = false;로 인해 발동 한 것까지 처리하지 마십시오. 암호. – Tigran

0

를 놓친이 당신의 대답 코드가 어떤 이벤트에

if (checkBox15.IsEnabled == false) 
{ 
MessageBox.Show("Are you sure you want to check this?", "Prompt", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) 
{ 
    Updatelist(); 
} 
else 
{ 
    checkBox15.IsEnabled = false; 
    return; 
} 
}`enter code here` 
else if (checkBox15.IsEnabled == true) 
{ 
checkBox15.Checked = false; 
return; 
관련 문제