서로 다른 클레스와 event를 이용한 통신

|

// 하나의 test폼 클레스.. 

 

namespace EventTestForm1
{
    public partial class Form1 : Form
    {
        TestEvent test;
        public Form1()
        {
            InitializeComponent();
            test = new TestEvent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            test.Message = this.textBox1.Text;
            test.gogo += new TransFrom.TransFrom(OnTextBox);//이벤트 등록
            test.EventGo();
        }
        public void OnTextBox(object sender, EventArgs e)//호출되는 함수
        {
            TestEvent ts = (TestEvent)sender;
            this.textBox1.Text = ts.Message;
        }
    }
}

namespace TransFrom
{
    public delegate void TransFrom(object sender, EventArgs e);

    public class TestEvent
    {
        public event TransFrom gogo;
        public string sMsg;
        public string Message
        {
            get
            {
                return sMsg;
            }
            set
            {
                sMsg = value;
            }
        }
        public TestEvent()
        {
        }
        public void EventGo()
        {
            EventArgs e = new EventArgs();
            sMsg += "AAAAAAAAAA";
            gogo(this, e);//이벤트 발생.. 등록되어있는 이벤트함수 실행
        }
    }
}

And