public SAV_BoxViewer(SAVEditor p, SlotChangeManager m) { parent = p; InitializeComponent(); Box.Setup(m); CenterToParent(); AllowDrop = true; GiveFeedback += (sender, e) => e.UseDefaultCursors = false; DragEnter += Main_DragEnter; DragDrop += (sender, e) => { Cursor = DefaultCursor; System.Media.SystemSounds.Asterisk.Play(); }; Owner = p.ParentForm; MouseWheel += (s, e) => { if (e.Delta > 1) { Box.MoveLeft(); } else { Box.MoveRight(); } }; foreach (PictureBox pb in Box.SlotPictureBoxes) { pb.ContextMenuStrip = parent.SlotPictureBoxes[0].ContextMenuStrip; } }
public SAV_BoxList(SAVEditor p, SlotChangeManager m) { InitializeComponent(); WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); // initialize boxes dynamically var sav = p.SAV; Boxes = new BoxEditor[sav.BoxCount]; AddControls(p, m, sav); SetWindowDimensions(sav.BoxCount); AllowDrop = true; AddEvents(); CenterToParent(); Owner = p.ParentForm; foreach (var b in Boxes) { m.Env.Slots.Publisher.Subscribers.Add(b); } FormClosing += (sender, e) => { foreach (var b in Boxes) { b.M?.Boxes.Remove(b); m.Env.Slots.Publisher.Subscribers.Remove(b); } }; }
private void AddControls(SAVEditor p, SlotChangeManager m, SaveFile sav) { for (int i = 0; i < sav.BoxCount; i++) { var boxEditor = new BoxEditor { Name = $"BE_Box{i:00}", Margin = new Padding(1), Editor = new BoxEdit(sav), }; boxEditor.Setup(m); boxEditor.InitializeGrid(); boxEditor.Reset(); foreach (PictureBox pb in boxEditor.SlotPictureBoxes) { pb.ContextMenuStrip = p.SlotPictureBoxes[0].ContextMenuStrip; } boxEditor.CurrentBox = i; boxEditor.CB_BoxSelect.Enabled = false; Boxes[i] = boxEditor; } FLP_Boxes.Controls.AddRange(Boxes); // Setup swapping foreach (var box in Boxes) { box.ClearEvents(); box.B_BoxLeft.Click += (s, e) => { if (s == null) { return; } int index = Array.IndexOf(Boxes, ((Button)s).Parent); int other = (index + Boxes.Length - 1) % Boxes.Length; m.SwapBoxes(index, other, p.SAV); }; box.B_BoxRight.Click += (s, e) => { if (s == null) { return; } int index = Array.IndexOf(Boxes, ((Button)s).Parent); int other = (index + 1) % Boxes.Length; m.SwapBoxes(index, other, p.SAV); }; } }
public SAV_BoxViewer(SAVEditor p, SlotChangeManager m) { parent = p; InitializeComponent(); int deltaW = Width - Box.BoxPokeGrid.Width; int deltaH = Height - Box.BoxPokeGrid.Height; Box.Editor = new BoxEdit(m.SE.SAV); Box.Setup(m); Box.InitializeGrid(); Width = Box.BoxPokeGrid.Width + deltaW + 2; Height = Box.BoxPokeGrid.Height + deltaH + 2; Box.RecenterControls(); Box.HorizontallyCenter(this); Box.Reset(); CenterToParent(); AllowDrop = true; GiveFeedback += (sender, e) => e.UseDefaultCursors = false; DragEnter += Main_DragEnter; DragDrop += (sender, e) => { Cursor = DefaultCursor; System.Media.SystemSounds.Asterisk.Play(); }; Owner = p.ParentForm; MouseWheel += (s, e) => { if (parent.menu.mnuVSD.Visible) { return; } Box.CurrentBox = e.Delta > 1 ? Box.Editor.MoveLeft() : Box.Editor.MoveRight(); }; foreach (PictureBox pb in Box.SlotPictureBoxes) { pb.ContextMenuStrip = parent.SlotPictureBoxes[0].ContextMenuStrip; } Box.ResetBoxNames(); // fix box names Box.ResetSlots(); // refresh box background p.EditEnv.Slots.Publisher.Subscribers.Add(Box); }
public SAV_BoxList(SAVEditor p, SlotChangeManager m) { InitializeComponent(); // initialize boxes dynamically var sav = p.SAV; AddControls(p, m, sav); SetWindowDimensions(sav.BoxCount); AllowDrop = true; AddEvents(); CenterToParent(); Owner = p.ParentForm; FormClosing += (sender, e) => { foreach (var b in Boxes) { b.M.Boxes.Remove(b); } }; }
private void AddControls(SAVEditor p, SlotChangeManager m, SaveFile sav) { for (int i = 0; i < sav.BoxCount; i++) { var boxEditor = new BoxEditor { Name = $"BE_Box{i:00}", Margin = new Padding(1) }; foreach (PictureBox pb in boxEditor.SlotPictureBoxes) { pb.ContextMenuStrip = p.SlotPictureBoxes[0].ContextMenuStrip; } boxEditor.Setup(m); boxEditor.Reset(); boxEditor.CurrentBox = i; boxEditor.CB_BoxSelect.Enabled = false; Boxes.Add(boxEditor); FLP_Boxes.Controls.Add(Boxes[i]); } // Setup swapping foreach (var box in Boxes) { box.ClearEvents(); box.B_BoxLeft.Click += (s, e) => { int index = Boxes.FindIndex(z => z == ((Button)s).Parent); int other = (index + Boxes.Count - 1) % Boxes.Count; m.SwapBoxes(index, other); }; box.B_BoxRight.Click += (s, e) => { int index = Boxes.FindIndex(z => z == ((Button)s).Parent); int other = (index + 1) % Boxes.Count; m.SwapBoxes(index, other); }; } }
public SAV_Database(PKMEditor f1, SAVEditor saveditor) { InitializeComponent(); ToolStripMenuItem mnuView = new ToolStripMenuItem { Name = "mnuView", Text = "View" }; ToolStripMenuItem mnuDelete = new ToolStripMenuItem { Name = "mnuDelete", Text = "Delete" }; WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); ContextMenuStrip mnu = new ContextMenuStrip(); mnu.Items.AddRange(new ToolStripItem[] { mnuView, mnuDelete }); SAV = saveditor.SAV; BoxView = saveditor; PKME_Tabs = f1; // Preset Filters to only show PKM available for loaded save CB_FormatComparator.SelectedIndex = 3; // <= PKXBOXES = new[] { bpkx1, bpkx2, bpkx3, bpkx4, bpkx5, bpkx6, bpkx7, bpkx8, bpkx9, bpkx10, bpkx11, bpkx12, bpkx13, bpkx14, bpkx15, bpkx16, bpkx17, bpkx18, bpkx19, bpkx20, bpkx21, bpkx22, bpkx23, bpkx24, bpkx25, bpkx26, bpkx27, bpkx28, bpkx29, bpkx30, bpkx31, bpkx32, bpkx33, bpkx34, bpkx35, bpkx36, bpkx37, bpkx38, bpkx39, bpkx40, bpkx41, bpkx42, bpkx43, bpkx44, bpkx45, bpkx46, bpkx47, bpkx48, bpkx49, bpkx50, bpkx51, bpkx52, bpkx53, bpkx54, bpkx55, bpkx56, bpkx57, bpkx58, bpkx59, bpkx60, bpkx61, bpkx62, bpkx63, bpkx64, bpkx65, bpkx66, }; // Enable Scrolling when hovered over foreach (var slot in PKXBOXES) { // Enable Click slot.MouseClick += (sender, e) => { if (ModifierKeys == Keys.Control) { ClickView(sender, e); } else if (ModifierKeys == Keys.Alt) { ClickDelete(sender, e); } else if (ModifierKeys == Keys.Shift) { ClickSet(sender, e); } }; } Counter = L_Count.Text; Viewed = L_Viewed.Text; L_Viewed.Text = string.Empty; // invis for now var hover = new ToolTip(); L_Viewed.MouseEnter += (sender, e) => hover.SetToolTip(L_Viewed, L_Viewed.Text); PopulateComboBoxes(); // Assign event handlers mnuView.Click += ClickView; mnuDelete.Click += ClickDelete; // Add to main context menu // Assign to datagridview foreach (PictureBox p in PKXBOXES) { p.ContextMenuStrip = mnu; } // Load Data B_Search.Enabled = false; L_Count.Text = "Loading..."; new Task(LoadDatabase).Start(); Menu_SearchSettings.DropDown.Closing += (sender, e) => { if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked) { e.Cancel = true; } }; CB_Format.Items[0] = MsgAny; CenterToParent(); }
public SAV_MysteryGiftDB(PKMEditor tabs, SAVEditor sav) { InitializeComponent(); WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); SAV = sav.SAV; BoxView = sav; PKME_Tabs = tabs; // Preset Filters to only show PKM available for loaded save CB_FormatComparator.SelectedIndex = 3; // <= var grid = MysteryPokeGrid; var smallWidth = grid.Width; var smallHeight = grid.Height; grid.InitializeGrid(6, 11, SpriteUtil.Spriter); grid.SetBackground(Resources.box_wp_clean); var newWidth = grid.Width; var newHeight = grid.Height; var wdelta = newWidth - smallWidth; if (wdelta != 0) { Width += wdelta; } var hdelta = newHeight - smallHeight; if (hdelta != 0) { Height += hdelta; } PKXBOXES = grid.Entries.ToArray(); // Enable Scrolling when hovered over foreach (var slot in PKXBOXES) { // Enable Click slot.MouseClick += (sender, e) => { if (ModifierKeys == Keys.Control) { ClickView(sender !, e); } }; slot.ContextMenuStrip = mnu; } Counter = L_Count.Text; Viewed = L_Viewed.Text; L_Viewed.Text = string.Empty; // invis for now L_Viewed.MouseEnter += (sender, e) => hover.SetToolTip(L_Viewed, L_Viewed.Text); // Load Data B_Search.Enabled = false; L_Count.Text = "Loading..."; new Task(LoadDatabase).Start(); CB_Format.Items[0] = MsgAny; CenterToParent(); }
public SAV_Database(PKMEditor f1, SAVEditor saveditor) { InitializeComponent(); WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); mnu.Items.AddRange(new ToolStripItem[] { mnuView, mnuDelete }); SAV = saveditor.SAV; BoxView = saveditor; PKME_Tabs = f1; // Preset Filters to only show PKM available for loaded save CB_FormatComparator.SelectedIndex = 3; // <= pokeGrid1.InitializeGrid(6, 11); pokeGrid1.SetBackground(Resources.box_wp_clean); PKXBOXES = pokeGrid1.Entries.ToArray(); // Enable Scrolling when hovered over foreach (var slot in PKXBOXES) { // Enable Click slot.MouseClick += (sender, e) => { switch (ModifierKeys) { case Keys.Control: ClickView(sender, e); break; case Keys.Alt: ClickDelete(sender, e); break; case Keys.Shift: ClickSet(sender, e); break; } }; if (Settings.Default.HoverSlotShowText) { slot.MouseEnter += ShowHoverTextForSlot; } } Counter = L_Count.Text; Viewed = L_Viewed.Text; L_Viewed.Text = string.Empty; // invisible for now PopulateComboBoxes(); // Assign to datagridview foreach (PictureBox p in PKXBOXES) { p.ContextMenuStrip = mnu; } // Load Data B_Search.Enabled = false; L_Count.Text = "Loading..."; new Task(LoadDatabase).Start(); Menu_SearchSettings.DropDown.Closing += (sender, e) => { if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked) { e.Cancel = true; } }; CB_Format.Items[0] = MsgAny; CenterToParent(); }
public SAV_MysteryGiftDB(PKMEditor tabs, SAVEditor sav) { SAV = sav.SAV; PKME_Tabs = tabs; InitializeComponent(); // Preset Filters to only show PKM available for loaded save CB_FormatComparator.SelectedIndex = 3; // <= PKXBOXES = new[] { bpkx1, bpkx2, bpkx3, bpkx4, bpkx5, bpkx6, bpkx7, bpkx8, bpkx9, bpkx10, bpkx11, bpkx12, bpkx13, bpkx14, bpkx15, bpkx16, bpkx17, bpkx18, bpkx19, bpkx20, bpkx21, bpkx22, bpkx23, bpkx24, bpkx25, bpkx26, bpkx27, bpkx28, bpkx29, bpkx30, bpkx31, bpkx32, bpkx33, bpkx34, bpkx35, bpkx36, bpkx37, bpkx38, bpkx39, bpkx40, bpkx41, bpkx42, bpkx43, bpkx44, bpkx45, bpkx46, bpkx47, bpkx48, bpkx49, bpkx50, bpkx51, bpkx52, bpkx53, bpkx54, bpkx55, bpkx56, bpkx57, bpkx58, bpkx59, bpkx60, bpkx61, bpkx62, bpkx63, bpkx64, bpkx65, bpkx66, }; // Enable Scrolling when hovered over foreach (var slot in PKXBOXES) { // Enable Click slot.MouseClick += (sender, e) => { if (ModifierKeys == Keys.Control) { ClickView(sender, e); } }; } Counter = L_Count.Text; Viewed = L_Viewed.Text; L_Viewed.Text = ""; // invis for now var hover = new ToolTip(); L_Viewed.MouseEnter += (sender, e) => hover.SetToolTip(L_Viewed, L_Viewed.Text); ContextMenuStrip mnu = new ContextMenuStrip(); ToolStripMenuItem mnuView = new ToolStripMenuItem("View"); ToolStripMenuItem mnuSaveMG = new ToolStripMenuItem("Save Gift"); ToolStripMenuItem mnuSavePK = new ToolStripMenuItem("Save PKM"); // Assign event handlers mnuView.Click += ClickView; mnuSaveMG.Click += ClickSaveMG; mnuSavePK.Click += ClickSavePK; // Add to main context menu mnu.Items.AddRange(new ToolStripItem[] { mnuView, mnuSaveMG, mnuSavePK }); // Assign to datagridview foreach (PictureBox p in PKXBOXES) { p.ContextMenuStrip = mnu; } // Load Data B_Search.Enabled = false; L_Count.Text = "Loading..."; new Task(LoadDatabase).Start(); Menu_SearchSettings.DropDown.Closing += (sender, e) => { if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked) { e.Cancel = true; } }; CenterToParent(); }
public SAV_Database(PKMEditor f1, SAVEditor saveditor) { InitializeComponent(); WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); SAV = saveditor.SAV; BoxView = saveditor; PKME_Tabs = f1; // Preset Filters to only show PKM available for loaded save CB_FormatComparator.SelectedIndex = 3; // <= var grid = DatabasePokeGrid; var smallWidth = grid.Width; var smallHeight = grid.Height; grid.InitializeGrid(6, 11, SpriteUtil.Spriter); grid.SetBackground(Resources.box_wp_clean); var newWidth = grid.Width; var newHeight = grid.Height; var wdelta = newWidth - smallWidth; if (wdelta != 0) { Width += wdelta; } var hdelta = newHeight - smallHeight; if (hdelta != 0) { Height += hdelta; } PKXBOXES = grid.Entries.ToArray(); // Enable Scrolling when hovered over foreach (var slot in PKXBOXES) { // Enable Click slot.MouseClick += (sender, e) => { if (sender == null) { return; } switch (ModifierKeys) { case Keys.Control: ClickView(sender, e); break; case Keys.Alt: ClickDelete(sender, e); break; case Keys.Shift: ClickSet(sender, e); break; } }; slot.ContextMenuStrip = mnu; if (Settings.Default.HoverSlotShowText) { slot.MouseEnter += (o, args) => ShowHoverTextForSlot(slot, args); } } Counter = L_Count.Text; Viewed = L_Viewed.Text; L_Viewed.Text = string.Empty; // invisible for now PopulateComboBoxes(); // Load Data B_Search.Enabled = false; L_Count.Text = "Loading..."; var task = new Task(LoadDatabase); task.ContinueWith(z => { if (!z.IsFaulted) { return; } Invoke((MethodInvoker)(() => L_Count.Text = "Failed.")); if (z.Exception == null) { return; } WinFormsUtil.Error("Loading database failed.", z.Exception.InnerException ?? new Exception(z.Exception.Message)); }); task.Start(); Menu_SearchSettings.DropDown.Closing += (sender, e) => { if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked) { e.Cancel = true; } }; CB_Format.Items[0] = MsgAny; CenterToParent(); }
public SAV_MysteryGiftDB(PKMEditor tabs, SAVEditor sav) { InitializeComponent(); ToolStripMenuItem mnuView = new ToolStripMenuItem { Name = "mnuView", Text = "View", Image = Resources.other }; ToolStripMenuItem mnuSaveMG = new ToolStripMenuItem { Name = "mnuSaveMG", Text = "Save Gift", Image = Resources.gift }; ToolStripMenuItem mnuSavePK = new ToolStripMenuItem { Name = "mnuSavePK", Text = "Save PKM", Image = Resources.savePKM }; WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); ContextMenuStrip mnu = new ContextMenuStrip(); mnu.Items.AddRange(new ToolStripItem[] { mnuView, mnuSaveMG, mnuSavePK }); SAV = sav.SAV; BoxView = sav; PKME_Tabs = tabs; // Preset Filters to only show PKM available for loaded save CB_FormatComparator.SelectedIndex = 3; // <= pokeGrid1.InitializeGrid(6, 11); pokeGrid1.SetBackground(Resources.box_wp_clean); PKXBOXES = pokeGrid1.Entries.ToArray(); // Enable Scrolling when hovered over foreach (var slot in PKXBOXES) { // Enable Click slot.MouseClick += (sender, e) => { if (ModifierKeys == Keys.Control) { ClickView(sender, e); } }; } Counter = L_Count.Text; Viewed = L_Viewed.Text; L_Viewed.Text = string.Empty; // invis for now var hover = new ToolTip(); L_Viewed.MouseEnter += (sender, e) => hover.SetToolTip(L_Viewed, L_Viewed.Text); // Assign event handlers mnuView.Click += ClickView; mnuSaveMG.Click += ClickSaveMG; mnuSavePK.Click += ClickSavePK; // Assign to datagridview foreach (PictureBox p in PKXBOXES) { p.ContextMenuStrip = mnu; } // Load Data B_Search.Enabled = false; L_Count.Text = "Loading..."; new Task(LoadDatabase).Start(); Menu_SearchSettings.DropDown.Closing += (sender, e) => { if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked) { e.Cancel = true; } }; CB_Format.Items[0] = MsgAny; CenterToParent(); }
public BoxManipulatorWF(SAVEditor editor) { Editor = editor; }
public SAV_Database(PKMEditor f1, SAVEditor saveditor) { SAV = saveditor.SAV; BoxView = saveditor; PKME_Tabs = f1; InitializeComponent(); // Preset Filters to only show PKM available for loaded save CB_FormatComparator.SelectedIndex = 3; // <= PKXBOXES = new[] { bpkx1, bpkx2, bpkx3, bpkx4, bpkx5, bpkx6, bpkx7, bpkx8, bpkx9, bpkx10, bpkx11, bpkx12, bpkx13, bpkx14, bpkx15, bpkx16, bpkx17, bpkx18, bpkx19, bpkx20, bpkx21, bpkx22, bpkx23, bpkx24, bpkx25, bpkx26, bpkx27, bpkx28, bpkx29, bpkx30, bpkx31, bpkx32, bpkx33, bpkx34, bpkx35, bpkx36, bpkx37, bpkx38, bpkx39, bpkx40, bpkx41, bpkx42, bpkx43, bpkx44, bpkx45, bpkx46, bpkx47, bpkx48, bpkx49, bpkx50, bpkx51, bpkx52, bpkx53, bpkx54, bpkx55, bpkx56, bpkx57, bpkx58, bpkx59, bpkx60, bpkx61, bpkx62, bpkx63, bpkx64, bpkx65, bpkx66, }; // Enable Scrolling when hovered over PAN_Box.MouseWheel += (sender, e) => { if (ActiveForm == this) { SCR_Box.Focus(); } }; foreach (var slot in PKXBOXES) { slot.MouseWheel += (sender, e) => { if (ActiveForm == this) { SCR_Box.Focus(); } }; // Enable Click slot.MouseClick += (sender, e) => { if (ModifierKeys == Keys.Control) { ClickView(sender, e); } else if (ModifierKeys == Keys.Alt) { ClickDelete(sender, e); } else if (ModifierKeys == Keys.Shift) { ClickSet(sender, e); } }; } Counter = L_Count.Text; Viewed = L_Viewed.Text; L_Viewed.Text = ""; // invis for now var hover = new ToolTip(); L_Viewed.MouseEnter += (sender, e) => hover.SetToolTip(L_Viewed, L_Viewed.Text); PopulateComboBoxes(); ContextMenuStrip mnu = new ContextMenuStrip(); ToolStripMenuItem mnuView = new ToolStripMenuItem("View"); ToolStripMenuItem mnuDelete = new ToolStripMenuItem("Delete"); // Assign event handlers mnuView.Click += ClickView; mnuDelete.Click += ClickDelete; // Add to main context menu mnu.Items.AddRange(new ToolStripItem[] { mnuView, mnuDelete }); // Assign to datagridview foreach (PictureBox p in PKXBOXES) { p.ContextMenuStrip = mnu; } // Load Data var dbTemp = new ConcurrentBag <PKM>(); var files = Directory.GetFiles(DatabasePath, "*", SearchOption.AllDirectories); Parallel.ForEach(files, file => { FileInfo fi = new FileInfo(file); if (!fi.Extension.Contains(".pk") || !PKX.IsPKM(fi.Length)) { return; } var pk = PKMConverter.GetPKMfromBytes(File.ReadAllBytes(file), file, prefer: (fi.Extension.Last() - 0x30) & 7); if (pk != null) { dbTemp.Add(pk); } }); #if DEBUG if (SaveUtil.GetSavesFromFolder(Main.BackupPath, false, out IEnumerable <string> result)) { Parallel.ForEach(result, file => { var sav = SaveUtil.GetVariantSAV(File.ReadAllBytes(file)); var path = EXTERNAL_SAV + new FileInfo(file).Name; if (sav.HasBox) { foreach (var pk in sav.BoxData) { addPKM(pk); } } void addPKM(PKM pk) { pk.Identifier = Path.Combine(path, pk.Identifier); dbTemp.Add(pk); } }); } #endif // Prepare Database RawDB = new List <PKM>(dbTemp.OrderBy(pk => pk.Identifier) .Concat(SAV.BoxData.Where(pk => pk.Species != 0)) // Fetch from save file .Where(pk => pk.ChecksumValid && pk.Species != 0 && pk.Sanity == 0) .Distinct()); SetResults(RawDB); Menu_SearchSettings.DropDown.Closing += (sender, e) => { if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked) { e.Cancel = true; } }; CenterToParent(); }
public SAV_MysteryGiftDB(PKMEditor tabs, SAVEditor sav) { SAV = sav.SAV; PKME_Tabs = tabs; InitializeComponent(); // Preset Filters to only show PKM available for loaded save CB_FormatComparator.SelectedIndex = 3; // <= PKXBOXES = new[] { bpkx1, bpkx2, bpkx3, bpkx4, bpkx5, bpkx6, bpkx7, bpkx8, bpkx9, bpkx10, bpkx11, bpkx12, bpkx13, bpkx14, bpkx15, bpkx16, bpkx17, bpkx18, bpkx19, bpkx20, bpkx21, bpkx22, bpkx23, bpkx24, bpkx25, bpkx26, bpkx27, bpkx28, bpkx29, bpkx30, bpkx31, bpkx32, bpkx33, bpkx34, bpkx35, bpkx36, bpkx37, bpkx38, bpkx39, bpkx40, bpkx41, bpkx42, bpkx43, bpkx44, bpkx45, bpkx46, bpkx47, bpkx48, bpkx49, bpkx50, bpkx51, bpkx52, bpkx53, bpkx54, bpkx55, bpkx56, bpkx57, bpkx58, bpkx59, bpkx60, bpkx61, bpkx62, bpkx63, bpkx64, bpkx65, bpkx66, }; // Enable Scrolling when hovered over PAN_Box.MouseWheel += (sender, e) => { if (ActiveForm == this) { SCR_Box.Focus(); } }; foreach (var slot in PKXBOXES) { slot.MouseWheel += (sender, e) => { if (ActiveForm == this) { SCR_Box.Focus(); } }; // Enable Click slot.MouseClick += (sender, e) => { if (ModifierKeys == Keys.Control) { ClickView(sender, e); } }; } Counter = L_Count.Text; Viewed = L_Viewed.Text; L_Viewed.Text = ""; // invis for now var hover = new ToolTip(); L_Viewed.MouseEnter += (sender, e) => hover.SetToolTip(L_Viewed, L_Viewed.Text); ContextMenuStrip mnu = new ContextMenuStrip(); ToolStripMenuItem mnuView = new ToolStripMenuItem("View"); ToolStripMenuItem mnuSaveMG = new ToolStripMenuItem("Save Gift"); ToolStripMenuItem mnuSavePK = new ToolStripMenuItem("Save PKM"); // Assign event handlers mnuView.Click += ClickView; mnuSaveMG.Click += ClickSaveMG; mnuSavePK.Click += ClickSavePK; // Add to main context menu mnu.Items.AddRange(new ToolStripItem[] { mnuView, mnuSaveMG, mnuSavePK }); // Assign to datagridview foreach (PictureBox p in PKXBOXES) { p.ContextMenuStrip = mnu; } // Load Data RawDB = new List <MysteryGift>(); RawDB.AddRange(Legal.MGDB_G4); RawDB.AddRange(Legal.MGDB_G5); RawDB.AddRange(Legal.MGDB_G6); RawDB.AddRange(Legal.MGDB_G7); RawDB = new List <MysteryGift>(RawDB.Where(mg => !mg.IsItem && mg.IsPokémon && mg.Species > 0).Distinct().Concat(Legal.MGDB_G3).OrderBy(mg => mg.Species)); foreach (var mg in RawDB) { mg.GiftUsed = false; } SetResults(RawDB); Menu_SearchSettings.DropDown.Closing += (sender, e) => { if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked) { e.Cancel = true; } }; PopulateComboBoxes(); CenterToParent(); }