Обращение к публичным функциям динамического окна

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Quantum18
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 16.03.2010 (Вт) 10:40

Обращение к публичным функциям динамического окна

Сообщение Quantum18 » 16.03.2010 (Вт) 10:58

Здравствуйте.
Предположим есть Form2 с какими-то контролами и публичной функцией. Где-то в меню главной MDI-формы мы пишем:

dim nFrm as new form2
nFrm.show

Далее в этой самой вновь-созданной форме (nFrm) мы вызываем третью форму, которая по результатам своей работы должна вызвать функцию из этой самой формы nFrm (а может и пару публичных переменных этой формы "потрогать").
Вопрос: Как это сделать? Передать форму как параметр в третью форму - не получается. Можно конечно воспользоваться глобальными переменными, но это скорее обход проблемы, чем решение.
Спасибо.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Обращение к публичным функциям динамического окна

Сообщение Денис » 16.03.2010 (Вт) 11:22

1. Учить ООП.
2. Не держать в формах логику приложения, не держать в них публичных функций.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Обращение к публичным функциям динамического окна

Сообщение MIT » 16.03.2010 (Вт) 11:42

По большому счету Денис прав, однако всё же бывают ситуации, когда нужна именно такая связь форм (когда, например, содержимое какого-нибудь списка одной формы зависит от результата работы другой, дочерней).

В таком случае правильнее сделать так, что бы вторая форма обращалась к результатам работы третьей, а не третяя самостоятельно влияла на содержимое второй.
В третьей можно объявить публичные переменные, к которым, по закрытию формы (подразумевается либо использование WithEvents либо ShowDialog, т.е. отображение третьей как модальной), будет обращатся вторая.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Quantum18
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 16.03.2010 (Вт) 10:40

Re: Обращение к публичным функциям динамического окна

Сообщение Quantum18 » 16.03.2010 (Вт) 11:51

MIT писал(а):По большому счету Денис прав, однако всё же бывают ситуации, когда нужна именно такая связь форм (когда, например, содержимое какого-нибудь списка одной формы зависит от результата работы другой, дочерней).

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


Да - идея классная. Если подумать, то тоже самое можно сделать через showdialog третьей формы из второй - и запрашивать там из нее все что хочешь. Супер - спасибо

Quantum18
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 16.03.2010 (Вт) 10:40

Re: Обращение к публичным функциям динамического окна

Сообщение Quantum18 » 16.03.2010 (Вт) 11:54

Денис писал(а):1. Учить ООП.

- не соответствует стратегическим целям. Задача - написать а не что-то там учить. Учить все на свете можно до конца жизни, вопрос зачем?
Денис писал(а):2. Не держать в формах логику приложения, не держать в них публичных функций.

- это значит скорее "Никак"

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Обращение к публичным функциям динамического окна

Сообщение Денис » 16.03.2010 (Вт) 12:51

Quantum18 писал(а):
Денис писал(а):Задача - написать а не что-то там учить.


Если у Вас задача (1) написать и забыть, то можете делать что хотите. Но если задача (2) написать, а потом осуществлять техподдержку програмы и выпускать новые версии, то Вы, наделав сейчас таких бездумных вызовов и потрогиваний, через пару версий проклянете всё и вся и будете переписывать программы с нуля.
Проверено сотнями кодеров с 70 годов и актуально по сей день.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Обращение к публичным функциям динамического окна

Сообщение Dmitriy2003 » 16.03.2010 (Вт) 21:48

Quantum18 писал(а):Передать форму как параметр в третью форму - не получается.

Это почему-же :?:


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 86

    TopList