Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Вызов одной формы из другой


Автор: 91koFF 25.6.2006, 20:43
Народ, помогите ламеру, плиз...

Пишу прогу для КПК.

Есть две формы Form1 и Form2. Вопрос:

1.  При запуске программы запускается Форма1. По какому-то действию Форма1 закрывается и открывается Форма2. Как это сделать?
(сработает ли потом наоборот? Не является ли форма1 главной  в программе?)

2.  Как использовать в функциях внешнего класса объекты из Формы1? Например, функция из класса1.cs должна поменять текст в lable1 в Form1?

Заранее спасибо. 

Автор: mr.DUDA 25.6.2006, 20:53
Цитата(91koFF @  25.6.2006,  20:43 Найти цитируемый пост)
Не является ли форма1 главной  в программе?)

Является.

Цитата(91koFF @  25.6.2006,  20:43 Найти цитируемый пост)
 Как использовать в функциях внешнего класса объекты из Формы1? Например, функция из класса1.cs должна поменять текст в lable1 в Form1?

Передавать ссылку на форму1 в конструктор формы2. Тогда форма2 (или какой нибудь другой класс) будет знать о существовании экземпляра формы1, и соответственно - может вызывать методы формы1, обращаться к свойствам и т.п. 

Автор: 91koFF 25.6.2006, 21:39
А как выглядит эта ссылка? Можно пример кода? 

Автор: mr.DUDA 25.6.2006, 22:05
Код

public class Form1: Form
{
   // ...
   public void ShowForm2()
   {
         Form2 f = new Form2(this);
         f.ShowDialog();
   }
}

// ...

public class Form2: Form
{
     public Form2(Form1 f)
     {
            _firstForm = f;
     }

      Form1  _firstForm;
 

      // ...

      public void button1_Click(object sender, EventArgs e)
      {
            _firstForm.textBox1.Text = "Новый текст в текстбоксе формы1";
      }
}


Идея, надеюсь, ясна. 

Автор: 91koFF 25.6.2006, 22:13
Спасибо огромное....Все понял! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)