Beispiel #1
0
        /// <summary>
        ///     OR条件必要技術リストビューの項目編集前の処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnOrRequiredListViewQueryItemEdit(object sender, QueryListViewItemEditEventArgs e)
        {
            switch (e.Column)
            {
                case 0: // ID
                    e.Type = ItemEditType.Text;
                    e.Text = orIdNumericUpDown.Text;
                    break;

                case 1: // 名前
                    e.Type = ItemEditType.List;
                    e.Items = orTechComboBox.Items.Cast<string>();
                    e.Index = orTechComboBox.SelectedIndex;
                    e.DropDownWidth = orTechComboBox.DropDownWidth;
                    break;
            }
        }
Beispiel #2
0
        /// <summary>
        ///     技術座標リストビューの項目編集前の処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnTechPositionListViewQueryItemEdit(object sender, QueryListViewItemEditEventArgs e)
        {
            switch (e.Column)
            {
                case 0: // X
                    e.Type = ItemEditType.Text;
                    e.Text = techXNumericUpDown.Text;
                    break;

                case 1: // Y
                    e.Type = ItemEditType.Text;
                    e.Text = techYNumericUpDown.Text;
                    break;
            }
        }
Beispiel #3
0
        /// <summary>
        ///     小研究リストビューの項目編集前の処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnComponentListViewQueryItemEdit(object sender, QueryListViewItemEditEventArgs e)
        {
            switch (e.Column)
            {
                case 0: // ID
                    e.Type = ItemEditType.Text;
                    e.Text = componentIdNumericUpDown.Text;
                    break;

                case 1: // 小研究名
                    e.Type = ItemEditType.Text;
                    e.Text = componentNameTextBox.Text;
                    break;

                case 2: // 研究特性
                    e.Type = ItemEditType.List;
                    e.Items = componentSpecialityComboBox.Items.Cast<string>();
                    e.Index = componentSpecialityComboBox.SelectedIndex;
                    e.DropDownWidth = componentSpecialityComboBox.DropDownWidth;
                    break;

                case 3: // 難易度
                    e.Type = ItemEditType.Text;
                    e.Text = componentDifficultyNumericUpDown.Text;
                    break;

                case 4: // 2倍
                    e.Type = ItemEditType.Bool;
                    e.Flag = componentDoubleTimeCheckBox.Checked;
                    break;
            }
        }
Beispiel #4
0
        /// <summary>
        ///     技術効果リストビューの項目編集前の処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnEffectListViewQueryItemEdit(object sender, QueryListViewItemEditEventArgs e)
        {
            switch (e.Column)
            {
                case 0: // 種類
                    e.Type = ItemEditType.List;
                    e.Items = commandTypeComboBox.Items.Cast<string>();
                    e.Index = commandTypeComboBox.SelectedIndex;
                    e.DropDownWidth = commandTypeComboBox.DropDownWidth;
                    break;

                case 1: // Which
                    e.Type = ItemEditType.Text;
                    e.Text = commandWhichComboBox.Text;
                    break;

                case 2: // Value
                    e.Type = ItemEditType.Text;
                    e.Text = commandValueComboBox.Text;
                    break;

                case 3: // When
                    e.Type = ItemEditType.Text;
                    e.Text = commandWhenComboBox.Text;
                    break;

                case 4: // Where
                    e.Type = ItemEditType.Text;
                    e.Text = commandWhereComboBox.Text;
                    break;
            }
        }
Beispiel #5
0
        /// <summary>
        ///     ユニットモデルリストビューの項目編集前の処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnModelListViewQueryItemEdit(object sender, QueryListViewItemEditEventArgs e)
        {
            switch (e.Column)
            {
                case 1: // 名前
                    e.Type = ItemEditType.Text;
                    e.Text = modelNameTextBox.Text;
                    break;

                case 2: // IC
                    e.Type = ItemEditType.Text;
                    e.Text = costTextBox.Text;
                    break;

                case 3: // 時間
                    e.Type = ItemEditType.Text;
                    e.Text = buildTimeTextBox.Text;
                    break;

                case 4: // 労働力
                    e.Type = ItemEditType.Text;
                    e.Text = manPowerTextBox.Text;
                    break;

                case 5: // 物資
                    e.Type = ItemEditType.Text;
                    e.Text = supplyConsumptionTextBox.Text;
                    break;

                case 6: // 燃料
                    e.Type = ItemEditType.Text;
                    e.Text = fuelConsumptionTextBox.Text;
                    break;

                case 7: // 組織率
                    e.Type = ItemEditType.Text;
                    e.Text = defaultOrganisationTextBox.Text;
                    break;

                case 8: // 士気
                    e.Type = ItemEditType.Text;
                    e.Text = moraleTextBox.Text;
                    break;

                case 9: // 速度
                    e.Type = ItemEditType.Text;
                    e.Text = maxSpeedTextBox.Text;
                    break;
            }
        }
Beispiel #6
0
        /// <summary>
        ///     改良リストビューの項目編集前の処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnUpgradeListViewQueryItemEdit(object sender, QueryListViewItemEditEventArgs e)
        {
            switch (e.Column)
            {
                case 0: // ユニット種類
                    e.Type = ItemEditType.List;
                    e.Items = (from UnitClass unit in upgradeTypeComboBox.Items select unit.ToString()).ToArray();
                    e.Index = upgradeTypeComboBox.SelectedIndex;
                    e.DropDownWidth = upgradeTypeComboBox.DropDownWidth;
                    break;

                case 1: // IC
                    e.Type = ItemEditType.Text;
                    e.Text = upgradeCostTextBox.Text;
                    break;

                case 2: // 時間
                    e.Type = ItemEditType.Text;
                    e.Text = upgradeTimeTextBox.Text;
                    break;
            }
        }
Beispiel #7
0
        /// <summary>
        ///     装備リストビューの項目編集前の処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnEquipmentListViewQueryItemEdit(object sender, QueryListViewItemEditEventArgs e)
        {
            switch (e.Column)
            {
                case 0: // 資源
                    e.Type = ItemEditType.List;
                    e.Items = resourceComboBox.Items.Cast<string>();
                    e.Index = resourceComboBox.SelectedIndex;
                    e.DropDownWidth = resourceComboBox.DropDownWidth;
                    break;

                case 1: // 量
                    e.Type = ItemEditType.Text;
                    e.Text = quantityTextBox.Text;
                    break;
            }
        }
Beispiel #8
0
        /// <summary>
        ///     指揮官リストビューの項目編集前の処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnLeaderListViewQueryItemEdit(object sender, QueryListViewItemEditEventArgs e)
        {
            switch (e.Column)
            {
                case 0: // 国タグ
                    e.Type = ItemEditType.List;
                    e.Items = countryComboBox.Items.Cast<string>();
                    e.Index = countryComboBox.SelectedIndex;
                    e.DropDownWidth = countryComboBox.DropDownWidth;
                    break;

                case 1: // ID
                    e.Type = ItemEditType.Text;
                    e.Text = idNumericUpDown.Text;
                    break;

                case 2: // 名前
                    e.Type = ItemEditType.Text;
                    e.Text = nameTextBox.Text;
                    break;

                case 3: // 兵科
                    e.Type = ItemEditType.List;
                    e.Items = branchComboBox.Items.Cast<string>();
                    e.Index = branchComboBox.SelectedIndex;
                    e.DropDownWidth = branchComboBox.DropDownWidth;
                    break;

                case 4: // スキル
                    e.Type = ItemEditType.Text;
                    e.Text = skillNumericUpDown.Text;
                    break;

                case 5: // 最大スキル
                    e.Type = ItemEditType.Text;
                    e.Text = maxSkillNumericUpDown.Text;
                    break;

                case 6: // 開始年
                    e.Type = ItemEditType.Text;
                    e.Text = startYearNumericUpDown.Text;
                    break;

                case 7: // 終了年
                    e.Type = ItemEditType.Text;
                    e.Text = endYearNumericUpDown.Text;
                    break;

                case 8: // 特性
                    e.Type = ItemEditType.None;
                    break;
            }
        }
        /// <summary>
        ///     プロヴィンスリストビューの項目編集前の処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnProvinceListViewQueryItemEdit(object sender, QueryListViewItemEditEventArgs e)
        {
            switch (e.Column)
            {
                case 0: // 名前
                    e.Type = ItemEditType.Text;
                    e.Text = nameTextBox.Text;
                    break;

                case 3: // 港
                    e.Type = ItemEditType.Bool;
                    e.Flag = portCheckBox.Checked;
                    break;

                case 4: // 砂浜
                    e.Type = ItemEditType.Bool;
                    e.Flag = beachCheckBox.Checked;
                    break;

                case 5: // インフラ
                    e.Type = ItemEditType.Text;
                    e.Text = infraTextBox.Text;
                    break;

                case 6: // IC
                    e.Type = ItemEditType.Text;
                    e.Text = icTextBox.Text;
                    break;

                case 7: // 労働力
                    e.Type = ItemEditType.Text;
                    e.Text = manpowerTextBox.Text;
                    break;

                case 8: // エネルギー
                    e.Type = ItemEditType.Text;
                    e.Text = energyTextBox.Text;
                    break;

                case 9: // 金属
                    e.Type = ItemEditType.Text;
                    e.Text = metalTextBox.Text;
                    break;

                case 10: // 希少資源
                    e.Type = ItemEditType.Text;
                    e.Text = rareMaterialsTextBox.Text;
                    break;

                case 11: // 石油
                    e.Type = ItemEditType.Text;
                    e.Text = oilTextBox.Text;
                    break;
            }
        }
Beispiel #10
0
        /// <summary>
        ///     項目編集用コントロールを表示する
        /// </summary>
        /// <param name="e">項目編集前イベントのパラメータ</param>
        private void ShowEditControl(QueryListViewItemEditEventArgs e)
        {
            // 項目編集なしの場合は何もしない
            if (e.Type == ItemEditType.None)
            {
                return;
            }

            _editingRowIndex = e.Row;
            _editingColumnIndex = e.Column;

            ListViewItem item = Items[e.Row];
            ListViewItem.ListViewSubItem subItem = item.SubItems[e.Column];

            // 項目編集用コントロールを表示する
            switch (e.Type)
            {
                case ItemEditType.Bool:
                    // 編集用コントロールを表示せず真偽値を反転させる
                    InvertFlag(e.Flag);
                    break;

                case ItemEditType.Text:
                    ShowEditTextBox(e.Text, new Point(subItem.Bounds.Left, subItem.Bounds.Top),
                        new Size(Columns[e.Column].Width, subItem.Bounds.Height));
                    break;

                case ItemEditType.List:
                    ShowEditComboBox(e.Items, e.Index, new Point(subItem.Bounds.Left, subItem.Bounds.Top),
                        new Size(Columns[e.Column].Width, subItem.Bounds.Height), e.DropDownWidth);
                    break;
            }
        }
Beispiel #11
0
        /// <summary>
        ///     マウスダブルクリック時の処理
        /// </summary>
        protected override void OnMouseDoubleClick(MouseEventArgs e)
        {
            base.OnMouseDoubleClick(e);

            // クリック位置が項目の上でなければ何もしない
            ListViewHitTestInfo ht = HitTest(e.X, e.Y);
            if (ht.SubItem == null)
            {
                return;
            }

            int rowIndex = ht.Item.Index;
            int columnIndex = ht.Item.SubItems.IndexOf(ht.SubItem);

            // 編集項目の種類を問い合わせる
            QueryListViewItemEditEventArgs qe = new QueryListViewItemEditEventArgs(rowIndex, columnIndex);
            QueryItemEdit?.Invoke(this, qe);

            // 編集用のコントロールを表示する
            ShowEditControl(qe);
        }