private void Tab_Selected(object sender, TabPage tab) { FieldInfo[] fields = GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance); foreach (FieldInfo field in fields) { var obj = field.GetValue(this); // release memory for the current tab if (obj is DataViewer view) { view.GridView.Rows.Clear(); GC.Collect(); GC.WaitForPendingFinalizers(); } } switch (TabControlMain.SelectedTab.Controls[0]) { case DataViewer view: { // no child control GridIOUtility.ImportGrid($"{TabControlMain.SelectedTab.Text}/{tab.Text}.bin", view.GridView, AddGridRow); break; } case TabControl childTab: { DataViewer view = (DataViewer)childTab.SelectedTab.Controls[0]; GridIOUtility.ImportGrid($"{TabControlMain.SelectedTab.Text}/{tab.Text}.bin", view.GridView, AddGridRow); break; } } }
private void MainForm_Load(object sender, EventArgs e) { GridIOUtility.ImportGrid("equips/Hairs.bin", EquipHairsView.GridView, AddGridRow); }