2010-07-01 3 views
0

combobox_SelectedIndexChanged (개체 보낸 사람, EventArgs 전자)를 프로그래밍 방식으로 올리는 방법?일단 방법의 끝나면 이벤트를 제기하는 방법?

ClearFields()라는 메서드가 있다고 가정 해 보겠습니다. Clearfields() 메소드의 끝을보기 전에 이벤트를 호출하고 싶습니다.

+0

'CmbSelectedIndexChanged'함수를 작성하고 SelectedIndexChanged 이벤트가 발생하면 ClearFields 메서드를 종료하기 전에 (필요한 이유가 무엇이든) ClearFields 메서드를 종료해야합니다. (데이터 드롭 다운을 계단식으로 연결하는 경우 자식 드롭 다운에서 DataBind()를 호출 할 수 있습니다.) – Jeroen

답변

0

그냥 : 당신이 메소드를 호출 할 코드의 시점에서

combobox_SelectedIndexChanged(null, null); 

.

11

는 다른 방법을 호출과 같은 : 이벤트가 발생하면

Public Sub ClearFields() 
    ... 
    ... 
    combobox_SelectedIndexChanged(Nothing, Nothing) 
End Sub 

그것은 실제로 '이벤트를 높이는'아니에요을 ... 그것은하지 모든 관련 메소드를 호출합니다. combobox_SelectedIndexChanged는 이벤트 트리거에 연결된 메소드 일뿐입니다.

특정 comboBox를 메서드에 전달해야하는 경우 첫 번째 Nothing을 전달해야하는 콤보 상자로 바꿉니다.

+0

이것은 'actual'이벤트 발생 메커니즘과 동일하므로 여기에 말할 이유가 없습니다. 이것은 '이벤트 발생'이 아닙니다. –

+2

메서드는 이벤트 자체가 아닌 이벤트 처리기입니다. – aqwert

+2

이것은 정답입니다. 항상 해내 죠. 다른 사람들을 괴롭히지 마십시오. 이벤트가 발신자를 염려한다면 ComboBox를 전달할 수 있습니다. 또한 이것은 이벤트를 발생시키지 않고 핸들러를 호출하는 것입니다. 핸들러를 호출 할 때 핸들러는 무시됩니다. 실제로 이벤트를 처리 할 때 VB는 이벤트와 함수 사이에 처리기를 추가하기 위해 일리노이를 생성합니다 (실제로는 C#에서이 작업을 수행 할 수 있지만 VB의 방식은 구문 적으로 더 매끄 럽습니다). – FastAl

0

구체적인 경우 사용자가 자신의 방법 끝에 OnSelectedIndexChanged 메서드를 호출 할 수 있다고 생각합니다. 콤보 상자의 내용을 지우는 것처럼 보이지만 어쨌든 이벤트를 발생시킬 수 있습니다.

0

ListView 컨트롤에서 다른 항목을 (프로그래밍 방식으로) 선택하여 SelectedIndexChanged 이벤트를 발생시킬 수 있습니다.

관련 문제