[엉뚱한실험1] 한 객체에 추가한 여러 개의 이벤트 어떤 순서로 실행되나!

Silverlight Old/Experiment 2007.10.16 10:42

아래 내용은 네이버 실버라이트 카페에 10월 7일 올렸던 글입니다.

원문 : http://cafe.naver.com/mssilverlight/816


가볍게 워밍업입니다.


뭐 이런 짓 왜해~ 하는 분들도 계실테지만, 눈으로 한번 확인해 보았습니다.

(실버라이트와 특별히 관계없는 실험입니다. C#의 기본적인 부분을 확인해 보았습니다.)


이벤트를 추가한 순서대로 수행되는 것이 정상적이겠지만,

또 변태적인 일이 일어날지 누가 알겠습니까? ^^



namespace Experiment
{
    public partial class Page : Canvas
    {
        public void Page_Loaded(object o, EventArgs e)
        {
            // Required to initialize variables
            InitializeComponent();


            // 같은 버튼에 각기 다른 3개의 이벤트 추가

            JustButton.MouseLeftButtonUp += new MouseEventHandler(JustButton_MouseLeftButtonUp1);
            JustButton.MouseLeftButtonUp += new MouseEventHandler(JustButton_MouseLeftButtonUp2);
            JustButton.MouseLeftButtonUp += new MouseEventHandler(JustButton_MouseLeftButtonUp3);


            JustOutput.Text = "";
            Title.Text = "Experiment #1 - The sequence of Events";
            AlignCenter(JustOutput);
        }

        void JustButton_MouseLeftButtonUp1(object sender, MouseEventArgs e)
        {
            JustOutput.Text+= "Event1 is called!\n";
            AlignCenter(JustOutput);
        }

        void JustButton_MouseLeftButtonUp2(object sender, MouseEventArgs e)
        {
            JustOutput.Text+= "Event2 is called!\n";
            AlignCenter(JustOutput);
        }

        void JustButton_MouseLeftButtonUp3(object sender, MouseEventArgs e)
        {
            JustOutput.Text += "Event3 is called!\n";
            AlignCenter(JustOutput);
        }

        void AlignCenter(TextBlock tb)
        {
            tb.SetValue(Canvas.LeftProperty, (Width - tb.ActualWidth) / 2);
            tb.SetValue(Canvas.TopProperty, (Height - tb.ActualHeight) / 2);
        }
    }
}



결과는 예상하시던대로 입니다.


사용자 삽입 이미지

추가한 순서대로 이벤트가 실행되는 것을 확인하였습니다. ^^;


그럼 다음 강좌에서 또 뵙겠습니다.


설정

트랙백

댓글