Как форма узнает, когда вы вошли в систему? - PullRequest
0 голосов
/ 14 января 2011

Хорошо, затем,

Я получил 2 формы, форму входа и основную форму, когда я нажимаю кнопку входа в основной форме, появляется форма входа.

В форме входа вы можете создатьДля учетной записи значения текстового поля вводятся в XML-файл и загружаются на FTP-сервер.

Когда вы хотите войти в систему, он читает XML, если имя пользователя и пароль верны, затем форма входа закрывается, и в основной формеярлыки изменится на «залогинен», ....

Как мне решить эту проблему?

Ответы [ 3 ]

2 голосов
/ 14 января 2011

Вы открываете форму входа в систему как модальную и возвращаете результат в зависимости от того, был ли когда-либо успешным вход в систему или нет.

Примерно так: Ссылка

1 голос
/ 14 января 2011

Я думаю, что проблема, с которой вы сталкиваетесь, заключается в том, чтобы решить, как передать статус пользователя "вошел в систему" и "не вошел в систему" между вашей формой входа в систему и вашей основной формой.

Один из способов сделать это - вызвать метод или функцию, которая проверяет, действительны ли предоставленные пользователем учетные данные, и возвращает значение, представляющее, был ли вход успешным или нет. Вы можете сохранить это значение в общедоступном поле уровня или свойство .

Затем можно написать код в главной форме, чтобы прочитать это значение из формы входа в систему для определения статуса входа в систему:

В остальной части главной формы вы можете установить текст элементов управления в соответствии с состоянием входа в систему:

if (userIsLoggedIn == true)
    { label1.Text = "Logged In" } 
else 
    { label1.Text = "Not Logged In" }

РЕДАКТИРОВАНИЕ: В форме входа в систему вы определяете свойство (назовем его IsLoggedIn), в котором хранится состояние входа в систему. Это может быть простое логическое (true / false) значение. Вы открываете форму входа из своей основной формы - это означает, что у вас должен быть код, который создает новый экземпляр формы входа и отображает его. Что-то вроде (C #):

LoginForm login = new LoginForm();
login.ShowDialog();

if (login.IsLoggedIn)
{
// update labels to Logged In
}
else
{
// update labels to not Logged In
}

В форме входа ваш код выполняет проверку входа, и вы сохраняете результат следующим образом:

// if successful, set logged in status to true

this.IsLoggedIn = true;
1 голос
/ 14 января 2011

Вы всегда можете запустить событие, когда форма входа закроется.

http://msdn.microsoft.com/en-us/library/system.windows.forms.form.onformclosing.aspx

...