У меня есть приложение со многими формами, которые пользователь может запускать из поддона. Но когда пользователь запускает 2 формы, будет работать только последний, пока он не закроет его. После закрытия второй формы первая работает снова.Как сделать много форм работы?
Как заставить много форм работать все время, как и другие программы в окне (например, много окон одного и того же веб-браузера)?
Вот часть кода, который я нашел в Интернете, и я использую его для показа и форм наложения.
public MyApplicationContext()
{
MenuItem SmsMenuItem = new MenuItem("SMS", new EventHandler(ShowSms));
MenuItem ExitMenuItem = new MenuItem("Wyjdź", new EventHandler(Exit));
MenuItem HistoryMenuItem = new MenuItem("Historia", new EventHandler(ShowHistory));
NotifyIcon notifyIcon = new NotifyIcon();
notifyIcon.Icon = SMSapp.Properties.Resources.Icon1;
notifyIcon.ContextMenu = new ContextMenu(new MenuItem[] { SmsMenuItem, HistoryMenuItem, ExitMenuItem });
notifyIcon.Visible = true;
}
void ShowSms(object sender, EventArgs e)
{
if (Globals.globals.Set.DBConn)
{
UnitOfWork uow = new UnitOfWork();
using (SmsForm sm = new SmsForm(uow))
{
if (sm.Visible)
sm.Focus();
else
sm.ShowDialog();
}
}
else
{
using (SmsForm sm = new SmsForm())
{
if (sm.Visible)
sm.Focus();
else
sm.Show();
}
}
}
void ShowHistory(object sender, EventArgs e)
{
if (Globals.globals.Set.DBConn)
{
UnitOfWork uow = new UnitOfWork();
using (HistoryForm sm = new HistoryForm(uow))
{
if (sm.Visible)
sm.Focus();
else
sm.ShowDialog();
}
}
else
{
using (HistoryForm sm = new HistoryForm())
{
if (sm.Visible)
sm.Focus();
else
sm.ShowDialog();
}
}
}
void Exit(object sender, EventArgs e)
{
notifyIcon.Visible = false;
Application.Exit();
}
Попробуйте использовать 'Show()' вместо 'ShowDialog()' при открытии новой формы –
Да, это было первое, что я сделал. Но окно показывает, а затем сразу исчезает. – AnotherSimpleName
'Show' верен. Если вам нужна помощь в ее работе, попробуйте создать [mcve] –