Возврат DialogResult
после закрытия формы Form1. Используйте это значение в Main()
, чтобы определить, следует ли открывать Form2 или нет. Что-то вроде этого.
В Form1, возможно, в обработчике нажатия кнопки:
this.DialogResult = DialogResult.OK;
this.Close();
В Program.cs:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var form1 = new Form1();
Application.Run(form1);
if (form1.DialogResult == DialogResult.OK) {
Application.Run(new Form2());
}
Если Form1 закрывается без установки его DialogResult
в DialogResult.OK
, ваше приложение будет выходить. Если ваш Form1 закрывается и его DialogResult
установлен в DialogResult.OK
, тогда откроется Form2.
Edit: Используя эту методику для простых входов
Вот один подход.
Создать перечисление, которое описывает результат вашего экрана входа в систему:
public enum LogonStatus { NoLogon, UserA, UserB };
На экране входа в систему создать свойство для сохранения результата входа:
public LoggedOnUser User { get; private set; }
В форме входа присвоить значение к операции входа в систему и закройте форму:
LogonResult = LogonStatus.UserA; // UserA logged in, for example.
this.Close();
В главном режиме вход в систему форма, изучить LogonResult
proeprty форме и обрабатывать результат:
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var loginForm = new Form_Login();
Application.Run(loginForm);
if (loginForm.LogonResult == LogonStatus.NoLogon) {
// Do something because there was no logon, or do nothing here and let your app exit.
} else {
// Launch your application form, passing in the logged on user.
Application.Run(new AppForm(loginForm.LogonResult));
}
}
Этот пример показывает, передавая LogonStatus
конструктору ваши AppForm
«ы, чтобы адаптировать его пользователь вошел в систему.
С учетом сказанного, однако, вы должны знать, что это не лучший способ сделать это. Более гибкое и надежное решение предполагает использование служб каталогов Windows.
Идея Okai Ur очень хорошая, но у меня есть роль для каждой учетной записи, если эта роль = 1 открытая форма 1, если role = 2 открытая форма 2 и т. Д. –
@MuhammedSalah 'DialogResult' - это просто свойство' Form'.Вы можете создать свое собственное свойство (возможно, типа Enumerated), которое указывает «Роль», получить его в «Main» и загрузить соответствующую форму. Дайте мне знать, если вы хотите, чтобы я привел пример ... –
Дайте мне пример Пожалуйста, @JayRiggs –