вернуть последний загруженный элемент управления, когда я перезагружаю машину - PullRequest
5 голосов
/ 19 февраля 2010

Я работаю в видеоприложении, и в моем приложении я использую множество элементов управления, для начала я загружу базу только после того, как загружу другие элементы управления в соответствии с потребностями пользователя…. десять элементов управления в этом случае, если он выключил машину, значит, когда он перезагружает машину, мне нужно вернуть все элементы управления обратно к тому, что он загружал элементы управления, прежде чем он выключится. заранее спасибо

есть ли возможность достичь этого без сохранения текущего набора управления, позиций и т. Д.

Ответы [ 2 ]

3 голосов
/ 19 февраля 2010

Вам нужно посмотреть на что-то вроде

По сути, все сводится к тому, что вам нужен способ сохранить текущий набор элементов управления и расположить (возможно, также и значения) в каком-либо хранилище (файл XML, реестр, база данных), когда пользователь выходит из вашей формы применение.

Затем, как только они снова откроют форму / приложение, вам нужно получить эти настройки для данного пользователя (если таковые имеются) и восстановить форму / приложение в это состояние.

2 голосов
/ 25 февраля 2010

Как насчет создания методов расширения для класса Control? (На самом деле, соответствующий абстрактный базовый класс .NET, подкласс класса Control, зависит от пользовательского интерфейса. Используете ли вы Windows Forms или XAML или ASP.NET?)

Что-то вроде:

public static class MyPositionExtensions{
    public static void SaveState(this Control c){ /* Save position to xml-file */ }
    public static void RestoreState(this Control c){ /* Load from xml-file */ }
}

Тогда в вашем закрытии просто цикл, как

foreach(var c in MyControls)c.SaveState();

и открытие как

foreach(var c in MyControls)c.RestoreState();
...