0
두 개의 단추로 저장 및 취소 할 수있는 간단한 사용자 정의 컨트롤을 작성하고 있습니다. 나는 그것이 코드에 명시된 곳에서 항상 null이기 때문에 구독자가 없다고 생각한다. 도와주세요.C# Windows Form 사용자 정의 컨트롤이 호출 양식으로 인식되지 않음
다음public partial class SaveCancelButtons : UserControl
{
public delegate void SaveClickedHandler();
public delegate void CancelClickedHandler();
public SaveCancelButtons()
{
InitializeComponent();
}
public event SaveClickedHandler SaveClicked;
public event CancelClickedHandler CancelClicked;
protected virtual void OnSaveClicked()
{
if (SaveClicked != null) <<<<----- ALWAYS NULL
{
SaveClicked(); // Notify Subscribers
}
}
protected virtual void OnCancelClicked()
{
if (CancelClicked != null) <<<<----- ALWAYS NULL
{
CancelClicked(); // Notify Subscribers
}
}
private void btnSave_Click(object sender, System.EventArgs e)
{
OnSaveClicked();
}
public void btnCancel_Click(object sender, EventArgs e)
{
OnCancelClicked();
}
}
내가 그것을 호출 오전 방법은 다음과 같습니다 : 당신은 여기 대표 및 이벤트를 혼합하려고
public partial class TestForm : Form
{
public TestForm()
{
// declare and subscribe to the user control
SaveCancelButtons scb = new SaveCancelButtons();
scb.SaveClicked += UC_SaveClicked;
scb.CancelClicked += UC_CancelClicked;
this.Controls.Add(scb);
InitializeComponent();
}
private void UC_SaveClicked()
{
MessageBox.Show("Save!");
}
private void UC_CancelClicked()
{
MessageBox.Show("Cancel");
}
}
을 변경, 나는 그것이 뭔가 빠진 것 같아요. 이 작은 자습서를 확인해보십시오. 도움이되는지 확인하십시오. EventHandler에서 호출을 랩핑합니다. 아마도 시도해보십시오. http://csharp-station.com/Tutorial/CSharp/Lesson14 – Nikki9696
그 링크를 가져 주셔서 감사합니다! – Missy