/// <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; } }
/// <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; } }
/// <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; } }
/// <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; } }
/// <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; } }
/// <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; } }
/// <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; } }
/// <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; } }
/// <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; } }
/// <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); }