From c2ca09166224a2dd8fe981ebaaaef49206d54b05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AD=B1=E5=82=91?= Date: Thu, 24 Aug 2023 19:51:30 +0800 Subject: [PATCH] Update Items filter --- .../GrasscutterTools/GrasscutterTools.csproj | 1 + .../Pages/PageGiveItem.Designer.cs | 16 +++--- Source/GrasscutterTools/Pages/PageGiveItem.cs | 48 +++++++---------- .../GrasscutterTools/Pages/PageGiveItem.resx | 31 +++++------ Source/GrasscutterTools/Pages/PageSpawn.cs | 54 +------------------ 5 files changed, 43 insertions(+), 107 deletions(-) diff --git a/Source/GrasscutterTools/GrasscutterTools.csproj b/Source/GrasscutterTools/GrasscutterTools.csproj index 3f648b5..a96a493 100644 --- a/Source/GrasscutterTools/GrasscutterTools.csproj +++ b/Source/GrasscutterTools/GrasscutterTools.csproj @@ -489,6 +489,7 @@ PageGiveItem.cs + Designer PageGiveItem.cs diff --git a/Source/GrasscutterTools/Pages/PageGiveItem.Designer.cs b/Source/GrasscutterTools/Pages/PageGiveItem.Designer.cs index 6d61d80..e50a7a7 100644 --- a/Source/GrasscutterTools/Pages/PageGiveItem.Designer.cs +++ b/Source/GrasscutterTools/Pages/PageGiveItem.Designer.cs @@ -43,7 +43,7 @@ this.NUDGameItemAmout = new System.Windows.Forms.NumericUpDown(); this.NUDGameItemLevel = new System.Windows.Forms.NumericUpDown(); this.LblGiveCommandDescription = new System.Windows.Forms.Label(); - this.BtnFilterItem = new System.Windows.Forms.Button(); + this.CmbFilterItem = new System.Windows.Forms.ComboBox(); this.MenuItemFilter = new System.Windows.Forms.ContextMenuStrip(this.components); this.GrpGiveItemRecord.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.NUDGameItemAmout)).BeginInit(); @@ -162,12 +162,12 @@ resources.ApplyResources(this.LblGiveCommandDescription, "LblGiveCommandDescription"); this.LblGiveCommandDescription.Name = "LblGiveCommandDescription"; // - // BtnFilterItem + // CmbFilterItem // - resources.ApplyResources(this.BtnFilterItem, "BtnFilterItem"); - this.BtnFilterItem.Name = "BtnFilterItem"; - this.BtnFilterItem.UseVisualStyleBackColor = true; - this.BtnFilterItem.Click += new System.EventHandler(this.BtnFilterItem_Click); + this.CmbFilterItem.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + resources.ApplyResources(this.CmbFilterItem, "CmbFilterItem"); + this.CmbFilterItem.Name = "CmbFilterItem"; + this.CmbFilterItem.SelectedIndexChanged += new System.EventHandler(this.CmbFilterItem_SelectedIndexChanged); // // MenuItemFilter // @@ -178,7 +178,7 @@ // resources.ApplyResources(this, "$this"); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.BtnFilterItem); + this.Controls.Add(this.CmbFilterItem); this.Controls.Add(this.LblClearGiveItemLogs); this.Controls.Add(this.BtnSaveGiveItemLog); this.Controls.Add(this.BtnRemoveGiveItemLog); @@ -215,7 +215,7 @@ private System.Windows.Forms.NumericUpDown NUDGameItemAmout; private System.Windows.Forms.NumericUpDown NUDGameItemLevel; private System.Windows.Forms.Label LblGiveCommandDescription; - private System.Windows.Forms.Button BtnFilterItem; + private System.Windows.Forms.ComboBox CmbFilterItem; private System.Windows.Forms.ContextMenuStrip MenuItemFilter; } } diff --git a/Source/GrasscutterTools/Pages/PageGiveItem.cs b/Source/GrasscutterTools/Pages/PageGiveItem.cs index 22ab168..66387e1 100644 --- a/Source/GrasscutterTools/Pages/PageGiveItem.cs +++ b/Source/GrasscutterTools/Pages/PageGiveItem.cs @@ -41,34 +41,28 @@ namespace GrasscutterTools.Pages InitGiveItemRecord(); } + private List ItemList; + /// /// 初始化游戏物品列表 /// public override void OnLoad() { - MenuItemFilter.SuspendLayout(); - MenuItemFilter.Items.Clear(); + var types = new List(); + var itemList = new List(); + + types.Add(Resources.All); SelectedItemTypeLines = GameData.Items.Lines; - BtnFilterItem.Text = Resources.All; - var all = new ToolStripMenuItem - { - Text = Resources.All, - Tag = SelectedItemTypeLines, - }; - all.Click += OnItemFilterClick; - MenuItemFilter.Items.Add(all); + itemList.Add(SelectedItemTypeLines); foreach (var kv in GameData.Items) { - var item = new ToolStripMenuItem - { - Text = kv.Key, - Tag = kv.Value.Lines, - }; - item.Click += OnItemFilterClick; - MenuItemFilter.Items.Add(item); + types.Add(kv.Key); + itemList.Add(kv.Value.Lines); } - MenuItemFilter.ResumeLayout(); + CmbFilterItem.DataSource = types; + ItemList = itemList; + LoadItemList(); } @@ -78,13 +72,14 @@ namespace GrasscutterTools.Pages private string[] SelectedItemTypeLines; /// - /// 物品类型过滤器类型选中时触发 + /// 点击过滤物品按钮时触发 /// - private void OnItemFilterClick(object sender, EventArgs e) + private void CmbFilterItem_SelectedIndexChanged(object sender, EventArgs e) { - var btn = sender as ToolStripMenuItem; - BtnFilterItem.Text = btn.Text; - SelectedItemTypeLines = btn.Tag as string[]; + if (CmbFilterItem.SelectedIndex < 0 || ItemList == null) return; + var lines = ItemList[CmbFilterItem.SelectedIndex]; + if (SelectedItemTypeLines == lines) return; + SelectedItemTypeLines = lines; LoadItemList(); } @@ -152,13 +147,6 @@ namespace GrasscutterTools.Pages GenGiveItemCommand(); } - /// - /// 点击过滤物品按钮时触发 - /// - private void BtnFilterItem_Click(object sender, EventArgs e) - { - MenuItemFilter.Show(BtnFilterItem, BtnFilterItem.Width, BtnFilterItem.Height); - } #region -- 物品记录 -- diff --git a/Source/GrasscutterTools/Pages/PageGiveItem.resx b/Source/GrasscutterTools/Pages/PageGiveItem.resx index 4d28cf7..f027c35 100644 --- a/Source/GrasscutterTools/Pages/PageGiveItem.resx +++ b/Source/GrasscutterTools/Pages/PageGiveItem.resx @@ -301,10 +301,10 @@ Top, Left, Right - 448, 3 + 498, 3 - 195, 23 + 145, 23 9 @@ -493,32 +493,29 @@ 13 - + NoControl - + 342, 2 - - 100, 25 + + 150, 25 - + 10 - - 全部 + + CmbFilterItem - - BtnFilterItem + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - + $this - - 1 + + 0 17, 17 diff --git a/Source/GrasscutterTools/Pages/PageSpawn.cs b/Source/GrasscutterTools/Pages/PageSpawn.cs index 0096c2c..0857c4f 100644 --- a/Source/GrasscutterTools/Pages/PageSpawn.cs +++ b/Source/GrasscutterTools/Pages/PageSpawn.cs @@ -73,40 +73,7 @@ namespace GrasscutterTools.Pages CmbFilterEntity.DataSource = types; EntityList = entityList; - - //// 初始化列表类型过滤器 - //MenuSpawnEntityFilter.SuspendLayout(); - //MenuSpawnEntityFilter.Items.Clear(); - //CmbFilterEntity.Text = Resources.All; - //// 默认显示所有 - //SelectedEntityTypeLines = GameData.Monsters.AllLines.Concat(GameData.Gadgets.AllLines).ToArray(); - //var all = new ToolStripMenuItem - //{ - // Text = Resources.All, - // Tag = SelectedEntityTypeLines, - //}; - //all.Click += OnEntityTypeFilterClick; - //MenuSpawnEntityFilter.Items.Add(all); - - //void AddTypes(ItemMapGroup group) - //{ - // foreach (var kv in group) - // { - // var item = new ToolStripMenuItem - // { - // Text = kv.Key, - // Tag = kv.Value.Lines, - // }; - // item.Click += OnEntityTypeFilterClick; - // MenuSpawnEntityFilter.Items.Add(item); - // } - //} - ////MenuSpawnEntityFilter.Items.Add(new ToolStripLabel("Monsters")); - //AddTypes(GameData.Monsters); - //MenuSpawnEntityFilter.Items.Add(new ToolStripSeparator()); - ////MenuSpawnEntityFilter.Items.Add(new ToolStripLabel("Gadgets")); - //AddTypes(GameData.Gadgets); - //MenuSpawnEntityFilter.ResumeLayout(); + //Console.WriteLine(string.Join("\n", GameData.Gadgets.Keys)); @@ -118,16 +85,6 @@ namespace GrasscutterTools.Pages /// private string[] SelectedEntityTypeLines; - ///// - ///// 实体类型过滤器类型选中时触发 - ///// - //private void OnEntityTypeFilterClick(object sender, EventArgs e) - //{ - // var btn = sender as ToolStripMenuItem; - // CmbFilterEntity.Text = btn.Text; - // SelectedEntityTypeLines = btn.Tag as string[]; - // LoadEntityList(); - //} /// /// 类别选中时触发 @@ -156,14 +113,7 @@ namespace GrasscutterTools.Pages { LoadEntityList(); } - - /// - /// 实体列表类型过滤按钮点击时触发 - /// - private void BtnFilterEntity_Click(object sender, EventArgs e) - { - MenuSpawnEntityFilter.Show(CmbFilterEntity, CmbFilterEntity.Width, CmbFilterEntity.Height); - } + /// /// 实体列表选中项改变时触发