[카테고리:] <span>Windows Forms 응용</span>

도서 관리자 개체에서 도서를 추가하면 게시하는 이벤트를 위해 이벤트 인자와 대리자를 정의합시다.

먼저 추가 이벤트 인자 클래스를 정의합니다. 이벤트 인자를 정의할 때는 EventArgs 클래스를 기반으로 파생 클래스로 정의하는 것을 권장합니다.

public class AddEventArgs:EventArgs
{

도서를 추가한 것인지 여부를 속성으로 제공합시다. 도서를 추가할 때는 true로 삭제할 때는 false입니다.

    public bool IsAdded
    {
        get;
        private set;
    }

도서 개체를 가져오기 할 수 있는 속성을 제공합니다.

    public BookStory BS
    {
        get;
        private set;
    }

제목을 가져오기 할 수 있는 속성을 제공합니다. 도서 개체를 속성으로 제공하여 이러한 속성이 불필요하게 보일 수 있습니다. 이벤트 인자 형식을 정의할 때는 이벤트 핸들러에서 사용하기 쉽게 속성을 정의하세요.

    public string Title
    {
        get
        {
            return BS.Title;
        }
    }

일련 번호를 가져오기 할 수 있는 속성을 제공합니다.

    public int No
    {
        get
        {
            return BS.No;
        }
   }

설명을 가져오기 할 수 있는 속성을 제공합니다.

    public string Description
    {
        get
        {
            return BS.Description;
        }
    }

이미지 이름을 가져오기 할 수 있는 속성을 제공합니다.

    public string ImageName
    {
        get
        {
            return BS.ImageName;
        }
    }

날짜를 가져오기 할 수 있는 속성을 제공합니다.

    public DateTime DT
    {
        get
        {
            return BS.DT;
        }
    }

생성자는 도서 개체와 추가/삭제 여부를 입력 인자로 받아 속성을 설정합니다.

    internal AddEventArgs(BookStory bs, bool is_added)
    {
        BS = bs;
        IsAdded = is_added;
    }
}

이벤트 핸들러를 위임할 대리자 형식을 정의합니다.

public delegate void AddEventHandler(object sender, AddEventArgs e);

▷ AddEventArgs.cs

//AddEventArgs.cs
using System;
namespace MyReadingStory
{
    /// <summary>
    /// 도서 추가 이벤트 인자 클래스
    /// </summary>
    public class AddEventArgs:EventArgs
    {
        /// <summary>
        /// 도서를 추가 여부 - 가져오기
        /// </summary>
        public bool IsAdded
        {
            get;
            private set;
        }
        /// <summary>
        /// 도서 - 가져오기
        /// </summary>
        public BookStory BS
        {
            get;
            private set;
        }
        /// <summary>
        /// 도서 제목 - 가져오기
        /// </summary>
        public string Title
        {
            get
            {
                return BS.Title;
            }
        }
        /// <summary>
        /// 도서 일련 번호 - 가져오기
        /// </summary>
        public int No
        {
            get
            {
                return BS.No;
            }
        }
        /// <summary>
        /// 도서 설명 - 가져오기
        /// </summary>
        public string Description
        {
            get
            {
                return BS.Description;
            }
        }
        /// <summary>
        /// 이미지 이름 - 가져오기
        /// </summary>
        public string ImageName
        {
            get
            {
                return BS.ImageName;
            }
        }
        /// <summary>
        /// 날짜 - 가져오기
        /// </summary>
        public DateTime DT
        {
            get
            {
                return BS.DT;
            }
        }
        internal AddEventArgs(BookStory bs, bool is_added)
        {
            BS = bs;
            IsAdded = is_added;
        }
    }
    /// <summary>
    /// 도서 추가 이벤트 핸들러를 위임할 대리자
    /// </summary>
    /// <param name="sender">이벤트 게시자</param>
    /// <param name="e">이벤트 인자</param>
    public delegate void AddEventHandler(object sender, AddEventArgs e);
}

Windows Forms 응용