2013-07-03 3 views
0

저는 vb.net 및 winform을 사용하고 있습니다. 나는 지난 몇 시간 동안 내 머리를 두드리는 문제를 우연히 만난다.다른 컨트롤에서 이벤트 트리거

Me.GroupBox1.Controls.Add(Me.ctlWithDropDown) 

사용자 제어 ctlWithDropDown

Me.Controls.Add(Me.ddList) 

Private Sub ddlList_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlList.SelectionChanged 
'some simple logic here to check if value changed   

End Sub 

주를

본체의 UserControl :

는 I는 I가 그룹 상자를 첨가하고, 그 그룹 상자의 내부에,이 같은 제어를 추가 메인 UserControl에있을 usercontrol은 true 또는 false 값을 설정하는 이벤트가있는 기본 클래스를 상속합니다.

Public Event SetFlag(ByVal value As Boolean) 

SelectionChanged 이벤트가 트리거 될 때 드롭 다운 목록에서이 부울 값을 트리거/설정하는 방법을 알고 싶습니다. 이 문제에 대한 도움이 필요하십니까?

+0

selectedchanged에 대한 핸들러에서 RaiseEvent 사용 – user1937198

답변

0

와이어 최대 드롭 다운 목록에 대한 이벤트 핸들러 :

AddHandler Me.ctlDropDown.SelectedIndexChanged, AddressOf ddlSelectedIndexChanged 
Me.GroupBox1.Controls.Add(Me.ctlDropDown) 

확인 ddlSelectedIndexChanged를 컨트롤에 만들고 SetFlag 이벤트를 발생 시키십시오.

Protected Sub ddlSelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) 

    RaiseEvent SetFlag(True) 

End Sub 
+0

조금 더 많은 정보를 업데이트했습니다. 기본 usercontrol을 넣을 대상과 ctlWithDropDown 사용자 정의 컨트롤을 넣을 대상을 명확히 할 수 있습니까? 나는 여기에서 길을 잃는다. – Calvin

+0

편집 내용이 다소 혼란 스럽습니다. 문제와 코드 구조를 조금 더 잘 설명하고 편집 해주십시오. – N0Alias

+0

그것은 사용자 정의 컨트롤에 대한 사용자 정의 컨트롤과 같습니다. 첫 번째 사용자 정의 컨트롤에는 드롭 다운 목록이있는 두 번째 사용자 정의 컨트롤이 있습니다. 첫 번째 사용자 정의 컨트롤은 SetFlag (boolean) 이벤트 호출이있는 부모를 상속합니다. 두 번째 사용자 정의 컨트롤에서 드롭 다운 목록의 이벤트 "SelectionChanged"가 발생하면 SetFlag (boolean) 이벤트를 발생시킵니다. 어떻게하면 좋을까요? – Calvin

0

me.ctlDropDown은 프로그래밍 방식으로 만드는 것입니다. 그렇다면 이런 종류의 일이 당신을 위해 일해야합니다. 이이 같은 이벤트 핸들러를해야 런타임에 생성되지 않은 경우

Public Sub Blah() 
    Dim ctlDropDown As New ComboBox 
    AddHandler ctlDropDown.SelectedIndexChanged, AddressOf IndexChangedHandler 
    Me.GroupBox1.Controls.Add(ctlDropDown) 
End Sub 

Private Sub IndexChangedHandler() 
    'Do whatever you need here. 
End Sub 

그러나 :

Private Sub IndexChangedHandler() Handles Me.ctlDropdown.SelectedIndexChanged 
    'Do whatever you need here. 
End Sub 
관련 문제