반응형
EventHandler에 매개 변수 전달
이 질문에 이미 답변이 있습니다.
EventHandler
매개 변수
MusicNote
음악을 추가 한 다음 항목 이 있습니다 .
public void PlayMusicEvent(object sender, EventArgs e,MusicNote music)
{
music.player.Stop();
System.Timers.Timer myTimer = (System.Timers.Timer)sender;
myTimer.Stop();
}
다음
Timer
과 같이 처리기를 추가해야합니다 .
myTimer.Elapsed += new ElapsedEventHandler(PlayMusicEvent(this, e, musicNote));
하지만 오류가 발생합니다.
"메소드 이름이 필요합니다."
편집 :이 경우이 코드 스 니펫이 포함 된 메서드에서 e를 전달합니다. 타이머 자체를
EventArgs
어떻게 전달 합니까?
Timer.Elapsed
(인수 특정 서명의 방법 기대
object
와
EventArgs
). 당신이 사용하려는 경우
PlayMusicEvent
평가 추가 인수와 방법을
이벤트 등록시
, 당신은 어댑터로 람다 식을 사용할 수 있습니다 :
myTimer.Elapsed += new ElapsedEventHandler((sender, e) => PlayMusicEvent(sender, e, musicNote));
편집 :
더 짧은 버전을 사용할 수도 있습니다.
myTimer.Elapsed += (sender, e) => PlayMusicEvent(sender, e, musicNote);
문제를 올바르게 이해하면 매개 변수로 전달하는 대신 메서드를 호출하는 것입니다. 다음을 시도하십시오.
myTimer.Elapsed += PlayMusicEvent;
어디
public void PlayMusicEvent(object sender, ElapsedEventArgs e)
{
music.player.Stop();
System.Timers.Timer myTimer = (System.Timers.Timer)sender;
myTimer.Stop();
}
그러나 메모를 저장할 위치를 생각해야합니다.참고 URL :
https://stackoverflow.com/questions/8644253/pass-parameter-to-eventhandler
반응형
'development' 카테고리의 다른 글
목록을 다시 정렬하려면 어떻게해야합니까? (0) | 2020.09.02 |
---|---|
링크를 버튼처럼 보이게 (0) | 2020.09.02 |
명시적인 ScriptBundle 포함 순서를 어떻게 지정할 수 있습니까? (0) | 2020.09.02 |
ASP.NET MVC 사용자 지정 modelbinder를 사용할 때 클라이언트에서 잠재적으로 위험한 Request.Form 값이 검색되었습니다. (0) | 2020.09.02 |
디렉토리를 생성하고 단일 명령으로 권한을 부여하는 방법 (0) | 2020.09.02 |