C#은 이벤트를 생성하고 전달받는 처리가 아주 쉽게 잘 정의되어 있습니다.
1. 이벤트를 만드는 코드
EventHandler 를 멤버변수로 선언하고 this.이벤트() 함수를 실행하면 콜백 이벤트가 발생하는 식입니다.
1. 이벤트 정의
public event EventHandler OnOrderReply;
2. 이벤트 호출
this.OnOrderReply(this, arg);
3. 이벤트 호출 시 원하는 값을 전달하고자 한다면 EventArgs 를 상속받아 간단한 전달용 클래스를 하나 만들면 됩니다.
public class OrderReplyEventArgs : EventArgs
public class DoOrder
{
// 중략
// ....
// 이벤트 콜백
public event EventHandler OnOrderReply;
public class OrderReplyEventArgs : EventArgs
{
public string sRetMsg;
}
private void testEvent()
{
OrderReplyEventArgs arg = new OrderReplyEventArgs();
arg.sRetMsg = "이벤트 테스트 ";
this.OnOrderReply(this, arg);
}
2. 이벤트 수신 코드
이벤트를 이용하는 곳에서는 아래처럼 처리합니다.
1. 이벤트를 수신받을 함수 선언
m_order.OnOrderReply += new EventHandler(m_order_onOrderReply);
2. 이벤트 수신 함수 구현
private void m_order_onOrderReply(object sender, EventArgs e)
public partial class fmST2 : Form
{
DoOrder m_order = new DoOrder();
private void fmST2_Load(object sender, EventArgs e)
{
// 중략
///////////////////////////////////////////////
// 이벤트 수신 함수 등록
m_order.OnOrderReply += new EventHandler(m_order_onOrderReply);
///////////////////////////////////////////////
// 중략
}
// DoOrder 이벤트 수신 처리
private void m_order_onOrderReply(object sender, EventArgs e)
{
string sErr = ((DoOrder.OrderReplyEventArgs)e).sRetMsg;
Debug.WriteLine(sErr);
}
// 중략
'개발 > C#' 카테고리의 다른 글
[C#]FOK, 최유리 매수 주문 (CYBOS PLUS/CREON PLUS) (0) | 2021.09.04 |
---|---|
[C#] User Control 을 툴박스에 표시하기 (0) | 2020.11.04 |
[C#] HTS 차트 흉내내기 (3) | 2020.10.15 |
[C#] 클릭(번개)주문 만들기 (CYBOS PLUS/CREON PLUS) #2 (0) | 2020.09.23 |
[C#] 클릭(번개)주문 만들기 (CYBOS PLUS/CREON PLUS) (2) | 2020.09.19 |
댓글