2011-03-03 4 views

답변

3

내가

cb.Checked = !cb.Checked; 
cb.Checked = !cb.Checked; 

을 할 수

그러나 그것은 추한하고 두 번 트리거합니다 ... 이벤트를 시뮬레이트합니다.

cb.CheckedChanged += delegate(object sender, EventArgs e) 
{ 
    ShowMessageBox(cb.Checked); 
}; 

private void ShowMessageBox(bool checkedValue) 
{ 
    MessageBox.Show(string.Format("The box was {0}checked", 
     checkedValue ? "" : "un")); 
} 
+0

CheckedChanged에 이벤트가 두 개 이상 연결되어 있다면? 이벤트에서 메서드로 필요한 정보를 전달하십시오. 실제 이벤트를 시뮬레이트해야합니다. – Anders

+0

@ 앤더스 : CheckBox에서 수행 할 방법을 모르겠습니다. 일반 버튼의 경우 [PerformClickClick] (http://msdn.microsoft.com/en-us/library/system.windows.forms.button.performclick.aspx) 방법이 있지만 ' CheckBox' (내가 아는). –

+1

@Anders : Checkbox에서 클래스를 파생시키고 OnCheckChanged()를 호출하는 공용 메서드를 추가합니다. 유일한 방법. 그것은 냄새 나는데, 다른 코드는 실제로 변경되지 않는 Checked 속성에 포함되지 않으며 값을 검사하지 않을 수도 있습니다. –

관련 문제