저는 userControl을 가지고 있는데, 거기에 버튼이 있습니다. userControl에서 내 메인 폼의 버튼을 클릭 할 때 이벤트를 호출하고 싶습니다. 나는이 작업을 수행 :어떻게하면 usercontrol에서 main form으로 이벤트를 호출 할 수 있습니까?
UserControl을
public UserControlerConstructor()
{
_button.Click += new EventHandler(OnButtonClicked);
}
public delegate void ButtonClickedEventHandler(object sender, EventArgs e);
public event ButtonClickedEventHandler OnUserControlButtonClicked;
private void OnButtonClicked(object sender, EventArgs e)
{
// Delegate the event to the caller
if (OnUserControlButtonClicked != null)
OnUserControlButtonClicked(this, e);
}
양식
public Form1()
{
userControlInstance.OnUserControlButtonClicked += new EventHandler(OnUCButtonClicked);
}
private void OnUCButtonClicked(object sender, EventArgs e)
{
throw new NotImplementedException();
}
내가 형태로 클릭하면 양식 코드에서 아무것도 할 수 없기 때문에 작동하지 않습니다,하지만 UserControl을 코드한다. 하지만 폼 코드로하고 싶습니다. userControl에서 폼으로 이벤트를 호출하는 방법을 모르겠습니다.
질문은 명확하지 않지만 폼 컨트롤에서 사용자 컨트롤 이벤트를 호출하는 것이 좋습니다. 클래스를 소유하고있는 사용자 만 이벤트를 호출 할 수있는시기를 알 수있는 것은 이벤트의 제한 사항입니다. 구독 클래스에는 이벤트 처리기 만 등록 할 수 있습니다. – praty
관련 없음 : 왜 사용자 지정 대리인을 사용하고 있습니까? 당신은 그것을'public event EventHandler OnUserControlButtonClicked'로 만들 수 있습니다. – Fildor
예, 컴파일러는 그것을 멈추지 않습니다. –