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


Автор: tit0 1.12.2009, 18:47
Есть две формы. Из Form1 вызывается Form2. Нужно, чтоб принажатии на кнопку
в Form2, Form1 свойство Visible менялось на false...т.е. она пропадала.
Как это реализовать?

В C# мне подсказали такой споcоб для взаимодействия двух форм,
но сказали что он не очень красивый:

Код

 public partial class SecondForm : System.Windows.Forms Form
    {
        private FirstForm parentForm = null;

        public SecondForm(FirstForm parentFirstForm)
        {
            InitializeComponent();
            parentForm = parentFirstForm;
        }

    ...


Автор: Heinzz 1.12.2009, 18:55
Все правильно Вам подсказали, надо передать ссылку на первую форму в конструктор второй, ну а дальше повесить на обработчик нужной кнопки parentForm.Visible = false;
 

Автор: tit0 1.12.2009, 19:10
А в чем тогда заключается его некрасивость? Вторая форма будит видеть открытые данные или все?

Автор: Heinzz 1.12.2009, 22:02
это раз ну и еще субъективно и иррационально - нехорошо главную форму приложения...., учтите, она закроется - все закроется smile 

Лучше пусть форма1 сама сделает себя невидимой при потере фокуса.... ну и диалогрезалт можно еще использовать

Автор: tit0 2.12.2009, 21:38
У меня что-то не получается перевести этот код в С++/ CLI может кто поможет? smile 

Автор: mrbrooks 3.12.2009, 09:59

Цитата(tit0 @  1.12.2009,  19:10 Найти цитируемый пост)
А в чем тогда заключается его некрасивость?

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

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