객체 이름은 추가 처리기를 사용하여 서브 루틴을 시작했습니다

StackOverflow https://stackoverflow.com/questions/19839838

  •  29-07-2022
  •  | 
  •  

문제

내 문제는 서브 루틴이 실행될 때 어떤 버튼이 발생했는지 모르겠습니다. 어떻게 찾을 수 있는지 알 수 있습니다. 가변 카운트는 클릭 한 삭제 버튼 번호로 교체해야합니다. 각 버튼에 대해 별도의 서브 루틴을 가질 수 없습니다. 매번 사용자가 양식에 추가되어야하는지 모르기 때문입니다.

    Dim delete1 = Sub()
        .Remove(label1(count, 1))
        .Remove(combo1(count, 1))
        .Remove(label1(count, 2))
        .Remove(combo1(count, 2))
        .Remove(label(count, 3))

                 End Sub

    For counter = 1 To count
        AddHandler MyClass.button1(counter).Click, delete1
    Next
도움이 되었습니까?

해결책

당신은 그것을 얻을 수 있습니다 sender 논쟁:

Private Sub delete1(sender As System.Object, e As System.EventArgs)

    Dim curButton As Button = DirectCast(sender, Button) 'Button you clicked

End Sub

앞서 언급 한 함수를 직접 추가하는 코드 ( delegate) 이다:

AddHandler MyClass.button1(counter).Click, AddressOf delete1
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top