2014-06-15 8 views
1

버튼이 프로그래밍 방식으로 추가되었지만 함수를 호출하고 추가 된 버튼의 텍스트를 반환해야합니다. 예를 들어 있기 때문에 다음과 같은 이유 수 없습니다VB에서 프로그래밍 방식으로 추가 된 버튼을 클릭 할 때 값이 필요한 함수를 호출하는 방법은 무엇입니까?

AddHandler button.Click, AddressOf function(value) 

생각의 경우 :

오류 1 'AddressOf를'피연산자 (괄호없이) 메소드의 이름이어야합니다.

고맙습니다.

+0

오류 메시지에서 알 수 있듯이 이벤트 위임자 ('sender As Object, e As EventArgs')와 일치하는 함수의 이름을 사용해야합니다 (또는 익명 메소드 사용). 무엇을 성취하려고합니까? –

+0

@ NicoSchertler 함수에있는 것을 수행하기 위해 생성 된 버튼 (모든 이름이있을 수 있음)의 텍스트를 사용하는 함수를 호출하려고합니다. – JediBurrell

+0

전달 된 '보낸 사람'의 해당 속성을 평가하지 않는 이유는 무엇입니까? –

답변

5

람다 식을 사용하면 문제가 없지만 올바르게 작성해야합니다. 을하지 않으면은 AddressOf 연산자를 사용합니다. Click 이벤트 처리기는 Function이 아닌 Sub입니다. 그것은 두 개의 논증을 필요로합니다. 올바른 구문은

AddHandler button.Click, Sub(sender, e) 
           MessageBox.Show("Clicked!") 
           Dim retval = SomeFunction(value) 
           '' etc... 
          End Sub 

VS2010 이상이 필요합니다.

+1

정말 고마워요, 너무 고마워요! – JediBurrell

+0

전체 웹에서 AddressOf 연산자가 필요하지 않은 유일한 장소! 고맙습니다 (대문자로). – Sabuncu

0

또 다른 방법은 단추 값을 처리기에서 검색 할 수있는 단추에 추가하는 것입니다.