Передача свойства формы

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

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

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Передача свойства формы

Сообщение kroskros » 15.05.2006 (Пн) 10:59

Граждане-товарищи, сами мы не местные...
подскажите пжааалста!

Есть форма (скажем - Главная),
на ней кнопка. По нажатию на кнопку открывается
вторая форма(назовем - Вспомогательная).
Во Вспомогательной форме определенным способом конструируется
содержание строки ТехстБокса.
Надо, что бы при закрытии Вспомогательной формы
содержимое этого самого ТекстБокса передавалось в
ТекстБокс Главной формы.

В качестве эксперимента я создал у класса Вспомогательной
ReadOnly свойство LabelString. В слепой надежде, что
смогу передать его вызывающей форме (Главной),
только таланта у меня не хватает, КАК это сделать?

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

Вариант sender.txtLabel.text= ... во Вспомогательной
(имея в виду sender - вызывающая форма Главная или любая другая),
но где шансы, что во всех формах это самое поле txtLabel
будет называться одинаково?

С надеждой уповаю,
Max

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 15.05.2006 (Пн) 11:05

Код: Выделить всё

'На главное ворме
Friend Shared Txt as TextBox = me.TextBox1


Код: Выделить всё

'На вспомагательной
Mainfrm.Txt.Text="бла-бла-бла"

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 15.05.2006 (Пн) 11:08

Просто как пятак (или вопрос понят не так как надо). Во второй форме пишешь функцию:

Код: Выделить всё
Public Function ShowAndGetData() As String
' код инициализации
If Me.ShowDialog() = System.Windows.Forms.DialogResult.OK  Then
     Return "То что надо"
End If
End Sub


Функцию вызываешь из первой формы и используешь получнную строку
Весь мир матрица, а мы в нем потоки байтов!

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 16.05.2006 (Вт) 5:47

хе...
Спасибо, заработало... :)

номер с showDialog() у меня не проходил, ибо Главное окно уже само по себе было модальным...
Max

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 16.05.2006 (Вт) 6:59

Зачем главное окно делать модальным??? Смысл этого действа?
Весь мир матрица, а мы в нем потоки байтов!

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 16.05.2006 (Вт) 17:04

эээ... это она Главная условно, относительно Вспомогательного.
А так-то она модальная (была) относительно MainForm :wink:
Max

Shurrik
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 110
Зарегистрирован: 20.05.2004 (Чт) 5:35
Откуда: Керчь, Крым

Сообщение Shurrik » 17.05.2006 (Ср) 7:14

Предлагаю использовать более гибкий способ общения между формами.
В отдельном модуле определяешь глобальную переменную, описывающую любой объект (числовую или текстовую переменную, таблицу, элемент управления или форму).
Public TBox As TextBox
В родительской форме (или любой другой) присваиваем
TBox = TextBox1
После чего имеем возможность читать и менять любые свойства TextBox1 из любой другой формы обращаясь к нему как к TBox.
Такой способ «общения» возможен не только между дочерней и родительской формами, но и между двумя дочерними или между «внучатой» и родительской. Короче, между любыми «родственниками» (формами) запущенными в одном приложении.
Колесо: Хочешь жить? Умей вертеться.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 17.05.2006 (Ср) 7:39

ИМХО: гибкость этой методы весьма сомнительна, а вот проблемы со всеобщей глобализацией получить можно легко.

2 kroskros значит приложение было неправильно спроектировано изначально если приходилось главную форму так заковыристо выводить
Весь мир матрица, а мы в нем потоки байтов!

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 17.05.2006 (Ср) 17:53

Shurrik писал(а):В отдельном модуле определяешь глобальную переменную, описывающую любой объект (числовую или текстовую переменную, таблицу, элемент управления или форму).

Глобальные переменные не есть гуд, типа, ...

!Viper! писал(а):2 kroskros значит приложение было неправильно спроектировано изначально если приходилось главную форму так заковыристо выводить


охъ... да говорю же она названа ГЛАВНОЙ тока в данном топике! :)
я ж потому и звал ее ПО-РУССКИ...
так-то она именуется frmDraftReg, если интересно...

может главная форма у меня - GeneralForm ;)))
Max


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

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

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

    TopList