Страница: 1 |
Form2.Show() Так открывается вторая форма проекта из главной формы. Хочу обратиться из второй формы к главной и в зависимости от выбора пользователя делать элементы главной формы видимыми или наоборот. Private Sub NumericUpDown1_... Dim frmMain As New Form1() ' как только добавляю эту строку - проект вообще не хочет грузиться!!! как-будто я его и не запускала. frmMain.TextBox1.Visible = Как же управлять элементами главной формы???? Наверно я что-то не то делаю..
Не нужно новый экземпляр Form1 создавать, тык как не знает какой стартовый оригинал или копия. Я так и подумала - он в Load первой(главной) формы не заходит. Тык по другому я не могу к элементам управления нужной формы обращаться.. объявление Dim frmMain As Form1() ничего не дает. Паш, спавибо тебе. Я 3-ий способ взяла. Все работает. Только объясни мне как такое может быть: Form1.MainForm.TextBox6.Visible = False ' работает End Sub А если так : Additional information: Object reference not set to an instance of an object. У меня вопрос по теме: Я добавляю новую форму. А в другой форме делаю вызов Form2.Show() но происходит ошибка. Как нужно правильно обьявить? Как раз тебе и надо то, что Пашка вложил в пунктах. Я всегда вот так делала: Public form2 As New frmPar() Form2.Show() Страница: 1 |
Вопрос: .NET: обращение к элементам другой формы
Добавлено: 18.02.04 10:10
Автор вопроса: Svetlana | ICQ: 262385618
Public form2 As New frmPar()
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
VladDor
Вопросов: 17
Ответов: 47
Профиль | | #1
Добавлено: 18.02.04 10:19
Номер ответа: 2
Автор ответа:
Svetlana
ICQ: 262385618
Вопросов: 43
Ответов: 205
Профиль | | #2
Добавлено: 18.02.04 10:33
Номер ответа: 3
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #3
Добавлено: 18.02.04 10:35
Тут нужно понять саму идеолгоию ООП...
В общем, этот вопрос на разных форумах встречается нередко... Вот
несколько возможных вариантов решения:
1. Передавать ссылку на главную форму в конструкторе. Тогда нужно
объявить в подчинённой форме приватную переменную:
Private MainForm As Form
, а конструктор подчинённой формы изменить таким образом:
Public Sub New(ByVal MainForm As Form)
Me.MainForm = MainForm
MyBase.New()
InitializeComponent()
End Sub
Создаём подчинённую форму вот так:
Dim f As New Form2 (Me)
f.Show
А из подчинённой формы к родительской так обращаемся:
MainForm. ...
2. Способ похож на первый... В подчинённой форме объявляем публичную (!)
переменную:
Public MainForm As Form
Подчинённую форму создаём так:
Dim f As New Form2
f.MainForm = Me
f.Show
Обращаемся из подчинённой формы к родительской так же, как и в пункте 1.
3. Используем Shared члены... В родительской (!) форме объявляем:
Public Shared MainForm As Form
В родительской форме перед созданием подчинённой формы (а лучще
где-нть при загрузке формы) пишем:
Form1.MainForm = Me
Из подчинённой формы обращаемся к родительской так:
Form1.MainForm. ...
Номер ответа: 4
Автор ответа:
Svetlana
ICQ: 262385618
Вопросов: 43
Ответов: 205
Профиль | | #4
Добавлено: 18.02.04 11:45
Номер ответа: 5
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #5
Добавлено: 18.02.04 11:54
То ли MainForm, то ли TextBox6 на момент выполнения этой строчки имеют
значение Nothing. Проверь в Debugger'е...
Номер ответа: 6
Автор ответа:
Mikhael
ICQ: 138809268
Вопросов: 15
Ответов: 14
Профиль | | #6
Добавлено: 18.02.04 12:20
Номер ответа: 7
Автор ответа:
Svetlana
ICQ: 262385618
Вопросов: 43
Ответов: 205
Профиль | | #7
Добавлено: 18.02.04 13:45