/// <summary>
        ///     フォームの初期化
        /// </summary>
        private void InitForm()
        {
            // ウィンドウの位置
            Location = HoI2EditorController.Settings.ScenarioEditor.Location;
            Size = HoI2EditorController.Settings.ScenarioEditor.Size;

            // 技術ツリーパネル
            _techTreePanelController = new TechTreePanelController(techTreePictureBox) { ApplyItemStatus = true };
            _techTreePanelController.ItemMouseClick += OnTechTreeItemMouseClick;
            _techTreePanelController.QueryItemStatus += OnQueryTechTreeItemStatus;

            // マップパネル
            _mapPanelController = new MapPanelController(provinceMapPanel, provinceMapPictureBox);

            // ユニットツリー
            _unitTreeController = new UnitTreeController(unitTreeView);

            // コントローラ
            _controller = new ScenarioEditorController(this, _mapPanelController, _unitTreeController);
        }
        /// <summary>
        ///     マップパネルのマウスクリック時の処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnMapPanelMouseClick(object sender, MapPanelController.ProvinceEventArgs e)
        {
            // 左クリック以外では何もしない
            if (e.Button != MouseButtons.Left)
            {
                return;
            }

            // 陸地プロヴィンスでなければ何もしない
            if (_controller.GetLandProvinceIndex(e.Id) < 0)
            {
                return;
            }

            // 選択中のプロヴィンスIDを更新する
            provinceIdTextBox.Text = IntHelper.ToString(e.Id);

            // プロヴィンスを選択する
            SelectProvince(e.Id);

            Country country = GetSelectedProvinceCountry();
            switch (_mapPanelController.FilterMode)
            {
                case MapPanelController.MapFilterMode.None:
                    Country target = (from settings in Scenarios.Data.Countries
                        where settings.ControlledProvinces.Contains(e.Id)
                        select settings.Country).FirstOrDefault();
                    provinceCountryFilterComboBox.SelectedIndex = Array.IndexOf(Countries.Tags, target) + 1;
                    break;

                case MapPanelController.MapFilterMode.Core:
                    if (country != Country.None)
                    {
                        coreProvinceCheckBox.Checked = !coreProvinceCheckBox.Checked;
                    }
                    break;

                case MapPanelController.MapFilterMode.Owned:
                    if (country != Country.None && ownedProvinceCheckBox.Enabled)
                    {
                        ownedProvinceCheckBox.Checked = !ownedProvinceCheckBox.Checked;
                    }
                    break;

                case MapPanelController.MapFilterMode.Controlled:
                    if (country != Country.None && controlledProvinceCheckBox.Enabled)
                    {
                        controlledProvinceCheckBox.Checked = !controlledProvinceCheckBox.Checked;
                    }
                    break;

                case MapPanelController.MapFilterMode.Claimed:
                    if (country != Country.None)
                    {
                        claimedProvinceCheckBox.Checked = !claimedProvinceCheckBox.Checked;
                    }
                    break;
            }
        }
 /// <summary>
 ///     コンストラクタ
 /// </summary>
 /// <param name="form">シナリオエディタのフォーム</param>
 /// <param name="mapPanelController">マップパネルのコントローラ</param>
 /// <param name="unitTreeController">ユニットツリーのコントローラ</param>
 public ScenarioEditorController(ScenarioEditorForm form, MapPanelController mapPanelController,
     UnitTreeController unitTreeController)
 {
     _form = form;
     _mapPanelController = mapPanelController;
     _unitTreeController = unitTreeController;
 }