Несколько пользователей в Windows Forms - PullRequest
2 голосов
/ 17 января 2012

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

1. Приложение запускается с отображением формы входа.

2. Пользователь «Джон» входит в приложение и вносит некоторые изменения в базу данных через форму.

3. «Джон» выходит из формы. Теперь я хочу, чтобы снова появилась форма входа в систему, чтобы пользователь "Брэд" мог войти в систему.

4. «Брэд» должен видеть изменения, сделанные «Джоном», и он также должен иметь возможность вносить некоторые изменения.

Пожалуйста, помогите мне с некоторыми примерами.

Позже редактировать: Я пробовал это:

form_login login = new form_login();
DialogResult result = login.ShowDialog();

if (result == DialogResult.OK)
{
  Application.Run(new main_page());
}
else if (result == DialogResult.Yes)
{
  Application.Run(new admin_page());
}
else if (result == DialogResult.No) // Back button 
{
  Application.Run(new form_login());
}
else
{
  Application.Exit();
}

Позднее редактировать:

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

Ответы [ 2 ]

2 голосов
/ 17 января 2012

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

static void Main()
{
  Application.EnableVisualStyles();
  Application.SetCompatibleTextRenderingDefault(false);

  DialogResult running = DialogResult.OK;
  while (running == DialogResult.OK) {
    form_login login = new form_login();
    Application.Run(login);
    running = login.DialogResult;
    if (login.DialogResult == DialogResult.OK)
      Application.Run(new Form1());
      // or your other forms...
  }
}

Это предполагает, что ваша форма входа в систему имеет кнопку ОК и кнопку Отмена, которая устанавливает результаты этого диалога.

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

0 голосов
/ 17 января 2012

Предполагая, что все изменения хранятся в базе данных, и форма инициализируется с тем, что находится в базе данных, вам не нужно делать ничего особенного.

Это все равно что сказать,

  1. Джон кладет что-то в ящик на полке в шкафу и уходит.
  2. Позже приходит Брэд и смотрит в коробку.
  3. Как мне убедиться, что Брэд видит, что Джон положил в коробку?

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

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

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

Обновление

Если вы действительно спрашиваете, как сохранить приложение работающим, когда пользователь выходит из системы: Application.Run() действительно нужно вызывать только один раз, когда приложение запускается. Вы запустите свою основную форму:

  using(var mainForm = new MainForm())
    Application.Run(mainForm);

Класс MainForm может представлять, например, ваш основной экран ввода данных.

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

Использование нескольких форм в c #

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