Страница: 1 |
Страница: 1 |
Вопрос: Инструментальное окно в NET.?
Добавлено: 16.09.05 00:12
Автор вопроса: vito | Web-сайт:
Сабж.
Нужно созать инструметальное окно(не модальное) и обмениваться данными с основным окном.
Окно создано и плавает:) но вот с обменом проблемы.
В SDK все примеры с модальными диаговыми окнами или миди.
А вот как организовать обмен данными между двумя немодальными окнами(в NET. классами) -тут проблема(или я не нашел).
Например.
Form2 frm = new Form2() ;
frm.Show ();'немодальный режим.
Тут все более менее ясно. Можно передать данные (инициализация).(хотя все очень странно получается:))
Но вот как передать данные(динамически) из дочерней формы?
Метод ParentForm в данном случае не очень подходит(и не работает).
'Ошибка! Ткнули не туда:))
'Пример из SDK Млин!
С миди формами нормально, но мне не подходит.
Метод - Box(как я понял) предназначен для работы с неуправлямыми объектами(С# Unm. type->pointers)?
Есть ли какой - нибудь другой способ получить указатель на класс (форму)?
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #1
Добавлено: 16.09.05 07:45
Частозааваемый вопрос.. Решение пробемы не составляет трудности для человека, имеющего хоть какой-то опыт работы с ООП.
В "дочерней" форме (которую открывают из родительской):
'...
MessageBox.Show (CType(Me.MyParent, Form1).Text)
В родительской форме:
f.MyParent = Me
f.Show ()
Номер ответа: 2
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #2
Добавлено: 16.09.05 07:47
Еще хотел добавить: это не совсем красивый код, т.к. он предполагает, что родительская форма - Form1. Более универсальное решение строится с помощью интерфейса (объявляется интерфейс с необходимыми членами, он реализуется всеми формами, которые будут родительскими, а в дочерней форме оперируем не с Form и Form1, а с интерфейсом).
Номер ответа: 3
Автор ответа:
vito
Разработчик Offline Client
Вопросов: 23
Ответов: 879
Web-сайт:
Профиль | | #3
Добавлено: 16.09.05 15:05
Огромное спасибо! А то совсем запарился.
Но я тут нарыл еще возможность взаимодествия с помощью делегатов?
Номер ответа: 4
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #4
Добавлено: 16.09.05 15:06
Да, можно и с помощью делегатов. Но, ИМХО, интерфейсы удобнее и быстрее.
Номер ответа: 5
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #5
Добавлено: 16.09.05 15:07
Хотя всё конечно зависит от задачи. Бывает лучше создать делегат, или даже событие.
Номер ответа: 6
Автор ответа:
vito
Разработчик Offline Client
Вопросов: 23
Ответов: 879
Web-сайт:
Профиль | | #6
Добавлено: 16.09.05 17:02
Павел
Еще раз огромное спасибо.