UserControls/MainMenuControl.cs

/*
 * Copyright XXXX Co.
 */

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

namespace ChatworkBulkSender.UserControls
{
    public partial class MainMenuControl : UserControl
    {
        /// <summary>
        /// 設定ボタンがクリックされたときに発生する
        /// </summary>
        public event EventHandler ConfigBtn_Clicked;

        /// <summary>
        /// 終了ボタンがクリックされたときに発生する
        /// </summary>
        public event EventHandler CloseBtn_Clicked;

        public MainMenuControl()
        {
            InitializeComponent();
            lblVersion.Text = $"Version. {Constants.VERSION}";
        }

        /// <summary>
        /// メインフォームへ設定ボタンのクリックイベントを通知する
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnGoToConfig_Click(object sender, EventArgs e)
        {
            // 設定ボタン押下で通知
            this.ConfigBtn_Clicked?.Invoke(this,EventArgs.Empty);
        }

        /// <summary>
        /// メインフォームへ終了ボタンのクリックイベントを通知する
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnCloseMain_Click(object sender, EventArgs e)
        {
            // 終了ボタン押下で通知
            this.CloseBtn_Clicked?.Invoke(this, EventArgs.Empty);
        }

        /// <summary>
        /// 定期送信ボタン
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnScheduledSend_Click(object sender, EventArgs e)
        {
            HideMainForm();
            T_MessageSender f = new T_MessageSender(Utils.Constants.SEND_TYPE.REGULAR_SENDING);
            f.FormClosed += (s, args) => ShowMainForm();   // 子フォームClosedのタイミングで親フォームを表示。
            f.Show();
        }
        /// <summary>
        /// 不定期送信ボタン
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnManualSend_Click(object sender, EventArgs e)
        {
            HideMainForm();
            T_MessageSender f = new T_MessageSender(Utils.Constants.SEND_TYPE.ADHOC_SENDING);
            f.FormClosed += (s, args) => ShowMainForm();   // 子フォームClosedのタイミングで親フォームを表示。
            f.Show();
        }

        /// <summary>
        /// 親のフォームを非表示にする。
        /// </summary>
        private void HideMainForm()
        {
            if (this.ParentForm != null)
            {
                this.ParentForm.Hide();
            }
        }
        /// <summary>
        /// 親のフォームを表示する。
        /// </summary>
        public void ShowMainForm()
        {
            if (this.ParentForm != null)
            {
                this.ParentForm.Show();
            }
        }


    }
}