private readonly ComboBox BoxSelect; // this is just us holding a reference; disposal is done by its parent #pragma warning restore CA2213 // Disposable fields should be disposed public LiveHexUI(ISaveFileProvider sav, IPKMView editor) { SAV = sav; Remote = new LiveHexController(sav, editor); InitializeComponent(); WinFormsTranslator.TranslateInterface(this, WinFormsTranslator.CurrentLanguage); TB_IP.Text = Properties.AutoLegality.Default.LatestIP; // add an event to the editor // ReSharper disable once SuspiciousTypeConversion.Global BoxSelect = ((Control)sav).Controls.Find("CB_BoxSelect", true).FirstOrDefault() as ComboBox; if (BoxSelect != null) { BoxSelect.SelectedIndexChanged += ChangeBox; } Closing += (s, e) => BoxSelect.SelectedIndexChanged -= ChangeBox; var type = sav.GetType(); var fields = type.GetTypeInfo().DeclaredFields; var test = fields.First(z => z.Name == "EditEnv"); x = (SaveDataEditor <PictureBox>)test.GetValue(sav); x.Slots.Publisher.Subscribers.Add(this); TB_Port.Text = Remote.Bot.Port.ToString(); CenterToParent(); }