По сути, у меня есть userControl, называемый ctables, который инициализируется следующим образом:
UserControl _ct_save_current_state = new ctables();
UserControl uc_controller = null;
private void Menu_Clicks_Handler(object sender, EventArgs e)
{
Control clicked = sender as Control;
string MainMenuItemName = "pMenu" + clicked.Tag.ToString();
if (sets.clickedMenuItemTag != clicked.Tag.ToString())
{
string OldMenuItemName = "pMenu" + sets.clickedMenuItemTag;
menu_Container.Controls[OldMenuItemName].BringToFront();
menu_Container.Controls[MainMenuItemName].SendToBack();
uc_controller.Dispose();
uc_controller = null;
switch (MainMenuItemName)
{
case "pMenu1": // if the user clicked processes menuItem
uc_controller = new processes(); // init uc_controller with processes userControl
break; // initializing it with a new since im disposing it after .
case "pMenu2": // now my problem is here .. i dont want this userControl to be disposed .
uc_controller = _ct_save_current_state; // more like save it with it's controls and texts
break; //to affect it to uc_controller when the ctables menu is clicked .
case "pMenu3":
uc_controller = new bots();
break;
default:
break;
}
op_container.Controls.Add(uc_controller); // adding the new uc_controller to my panel
uc_controller.Dock = DockStyle.Fill; // fill the panel
sets.clickedMenuItemTag = clicked.Tag.ToString(); // dont mind this .
}
}
Как я уже сказал в комментариях, моя проблема в том, что я не знаю точно, как я могу сохранить ctables UserControl _ct_save_current_state с его текущими элементами управления .. объектами и т. Д. c .. И поэтому, когда uc_controller расположен, я могу загрузить его из _ct_save_current_state ..
Однако я Я чувствую, что моя проблема из-за ссылки ... не уверен, но, может быть, когда я это сделал uc_controller = _ct_save_current_state; это означает, что если я избавлюсь от uc_controller .. _ct_save_current_state также будет удалена, может быть?
нужна помощь, спасибо