Не сохраняются данные в UserControl

101
30 июля 2021, 12:30

Если переключаюсь между UserControl'ами то данные в них не сохраняются (Стираются - не элементы а данные в виде текста)

Использую данный код: (Нашёл на соседнем борде )

public static void ControlVisible(Panel Panl, UserControl Uc)
{
  var ctrl = Panl.Controls.OfType<UserControl>().FirstOrDefault(predicate: g => g.Name == Uc.Name);
  if (ctrl != null)
  {
     ctrl.BringToFront();
  }
  else
  {
     Panl.Controls.Add(value: Uc);
     Uc.BringToFront();
  }
}

Для показа (когда переключаюсь по UserControl) использую данный метод:

ControlVisible(Panel, new UserControl()); 
// UserControl - имя нужного Usercontrol'a где находятся элементы. 
// Panel - Компонент Panel куда показывается usercontrol

Если ввожу какие-нибудь данные в один Usercontrol и переключусь на другой UserControl то при возврате на предыдущий юзерконтрол данные стёртые.

Подскажите как это исправить?

P.S: Ну по идем этот способ должен работать корректно, может быть у меня какой-то глюк :(

Answer 1

А назначение идёт в строчках после else

Вы не видите введенных значений, потому что все время добавляете и показываете новый контрол. Как может что-то найтись по Name, если во время поиска у Uc еще нет никакого Name?

var ctrl = Panl.Controls.FirstOrDefault(predicate: g => g.GetType() == Uc.GetType());
READ ALSO
Где находится exe файл программы C# под Visual Studio?

Где находится exe файл программы C# под Visual Studio?

Поставлена последняя версия VS Community 2019Компилирую простенькую консольную программу

184
Session всегда является null

Session всегда является null

уважаемые форумчани!

137