사용자 정의 컨트롤에서 사용자 정의 이벤트를 선언하고 필요한 경우 이벤트를 발생시켜야합니다. 귀하의 예제를 사용하여 :
public event EventHandler ButtonClicked;
protected override OnButtonClicked(EventArgs e)
{
var hand = ButtonClicked;
if (hand != null)
hand(this, e);
}
private void CButton_Click(Object sender, EventArgs e)
{
txt = "C";
OnButtonClicked(new EventArgs());
}
그럼 당신은 다른 코드에서 해당 UserControl의 ButtonClicked
이벤트에 가입 할 수 있습니다.
그러나보다 나은 방법은 필드에 마지막 키 누르기를 저장하는 대신 이벤트 자체에 EventArg를 만들고 이벤트 자체에 문자열을 전달하는 것입니다. 다음과 같은 메시지가 표시됩니다.
public KeyboardEventArgs : EventArgs
{
public KeyboardEventArgs()
:base()
{
}
public KeyboardEventArgs(char Key)
:this()
{
this.Key = Key;
}
char Key {get; set;}
}
public event EventHandler<KeyboardEventArgs> ButtonClicked;
protected override OnButtonClicked(KeyboardEventArgs e)
{
var hand = ButtonClicked;
if (hand != null)
hand(this, e);
}
private void CButton_Click(Object sender, EventArgs e)
{
OnButtonClicked(new KeyboardEventArgs("C"));
}
+1 맞춤 이벤트 접근 방식 –
에 대한 답변입니다. :-) – Cerebrus
고마워, 내가 말했듯이 .. 그리고 칼슘 직접 문자열 .. 메모리를 저장 .. 그리고 지금은 작동 – Dabiddo