폼에 여러 개의 컨트롤이 있고 "change"이벤트가 모두 같은 이벤트 처리기를 가리키고 있습니다. 이들 중 일부는 txtInput1의 TextChanged, chkOption1의 CheckedChanged 및 cmbStuff1의 SelectedIndexChanged입니다. 사용자가 텍스트 상자의 텍스트를 변경하거나 체크 박스 또는 무엇이든을 클릭 할 때 문 만 실행하는 경우사용자 작업 또는 코드에 의해 이벤트가 발생했는지 어떻게 확인할 수 있습니까?
private void UpdatePreview(object sender, EventArgs e)
{
// TODO: Only proceed if event was fired due to a user's clicking/typing, not a programmatical set
if (sender.IsSomethingThatTheUserDid) // .IsSomethingThatTheUserDid doesn't work
{
txtPreview.Text = "The user has changed one of the options!";
}
}
내가 좋아하는 것 : 여기에 이벤트 핸들러입니다. 텍스트 나 체크 박스가 프로그램의 다른 부분에 의해 변경되면 나는 그것을 원하지 않습니다.
나는 최근에 정확히 같은 질문에 대답 했다며 맹세했다. –
여기있다. 정확히 완전한 복제본은 아니지만 그 대답은 여전히 동일합니다. http://stackoverflow.com/questions/3071811/listbox-selectedindexchanged-can-you-determine-if-it-was-user-intiated/3071856 –
Can 당신은 "텍스트 나 체크 박스가 프로그램의 다른 부분에 의해 변경되면 나는 그것을 원하지 않는다"는 것을 의미하는 것을 분명히합니다. – Doug