Forms/M_SenderMaster.cs

/*
 * Copyright INDEX Co.
 */

using System;
using System.Drawing;
using System.Windows.Forms;
using ChatworkBulkSender.UserControls;
using ChatworkBulkSender.Utils;

namespace ChatworkBulkSender.Forms
{
    public partial class M_SenderMaster : Form
    {
        private SenderInfoControl _senderInfo;

        public M_SenderMaster()
        {
            InitializeComponent();

            this.ActiveControl = null;

            this.ClientSize = new Size(1200,400);

            // ウィンドウサイズを固定にする
            this.FormBorderStyle = FormBorderStyle.FixedSingle;

            // 現在の画面の中央に表示する
            this.StartPosition = FormStartPosition.CenterScreen;

            _senderInfo = new SenderInfoControl();

            _senderInfo.Dock = DockStyle.Fill;

            panel.Controls.Add(_senderInfo);

            this.ActiveControl = panel;

        }

        private void M_SenderMaster_Load(object sender, EventArgs e)
        {
            // 戻るボタンのクリックイベントの登録
            _senderInfo.BtnReturnClicked += this.BtnReturn_Click;
        }

        /// <summary>
        /// 戻るボタンのクリック時にフォームを閉じる
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnReturn_Click(object sender, EventArgs e)
        {
            // フォームを閉じる
            this.Close();
        }

        private void M_SenderMaster_FormClosing(object sender, FormClosingEventArgs e)
        {
            // 親ウィンドウ(this)を渡し、表示場所が同じ画面位置になるように調整
            DialogResult result = MessageBox.Show("送信者情報マスタ画面を終了してもよろしいですか?", "確認", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (result == DialogResult.No)
            {
                e.Cancel = true;

                return;
            }

            // イベント登録の解除
            _senderInfo.BtnReturnClicked -= this.BtnReturn_Click;

            // 明示的に解放する
            _senderInfo.Dispose();

            if (this.Owner != null)
            {
                // 設定メニューを表示する 
                this.Owner.Show();

                // 再描写を行う
                this.Owner.Refresh();
            }
        }
    }
}