открытие форм в c # - PullRequest
0 голосов
/ 24 марта 2009

У меня была кнопка в первой форме. Если я нажимаю кнопку, когда открывается вторая форма, если я нажимаю снова ту же кнопку в первой форме, открывается другая вторая форма. Мне нужно открыть только одну вторую форму только в c #. 1001 *

Ответы [ 4 ]

4 голосов
/ 24 марта 2009

Ну, вы могли бы сделать:

Form.ShowDialog()

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

Или вы могли бы сделать

Form2 form2 = null;

void button_click(object sender, EventArgs e)
{ 
   if(form2 == null)
   {
      form2 = new Form2();
      form2.Disposed += new EventHandler(f_Disposed);
      form2.Show();
   }
}

void f_Disposed(object sender, EventArgs e)
{
   form2 = null;
}
1 голос
/ 24 марта 2009

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

if(form2Instance.Visible==true)
    ....
0 голосов
/ 24 марта 2009

Я бы объявил приватную переменную в классе с помощью кнопки, которая содержит ссылку на открытую форму.

Если кнопка нажата:

  • Проверьте, является ли оно нулевым,
  • Если да, создайте и покажите новую форму, если нет, ничего не делайте.

Если речь идет об открытии ровно одной формы, вы также можете проверить форму. ShowDialog (), которая блокирует форму вызывающей стороны до закрытия новой формы.

0 голосов
/ 24 марта 2009

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

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