powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Передача данных из одной формы в другую
17 сообщений из 17, страница 1 из 1
Передача данных из одной формы в другую
    #32442883
Турист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди добрые, подскажите, пожалуйста,
как в MDI-приложении передавать данные из одной формы в другую.
Например: у главной формы есть две дочерние. При двойном щелчке на 1-ой дочерней форме открывается 2-ая дочерняя. Как сделать так, чтобы при нажатии на кнопку во второй форме, в первой форме что-то изменилось (например изменился текст в строке ввода)?

Заранее благодарен за полезную информацию.
...
Рейтинг: 0 / 0
Передача данных из одной формы в другую
    #32443759
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант,

Через owner формы можно добраться до любого родителя
Dim myOwner as MainForm = Ctype(Me.owner, MainForm)
где MainForm - это родитель формы.

Тоесть ты можешь создать ссылку на своего родителя а дальше менять его свойства, переменные, и т.д все то что открыто.

Помимо этого есть еще несколько вариантов, если этот не подходит.
...
Рейтинг: 0 / 0
Передача данных из одной формы в другую
    #32444277
Турист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно немножко поподробнее?

Допустим, я создал ссылку на форму Form1. Как мне теперь поменять свойство кнопки button1.enabled формы Form1 с true на false?
...
Рейтинг: 0 / 0
Передача данных из одной формы в другую
    #32444636
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Допустим, я создал ссылку на форму Form1. Как мне теперь поменять свойство кнопки button1.enabled формы Form1 с true на false?

А почему допустим. А вы ее создали? Пробуйте сразу же и пишите что не получилось, тогда бы может быть вместо этого вопроса появился другой.

Точно проверьте что ссылка на экземпляр класса MainForm создалась.
А дальше как обычно myOwner.button1.enabled = True

Главная идея подобраться к УЖЕ СОЗДАННОМУ экземпляру класса MainForm (а не создавать новый), а как вы подберетесь уже другой вопрос. Если кнопки не видно то можно сделать public процедуру в MainForm которая будет устанавливать значение enable кнопки button1. Вообще в этом и подобных случаех (если лень читать документации) можно просто взять debug остановить выполнение программы на второй форме. Октрыть watch и прошерсить все свойства там и посмотрите что лежит в owner, mdiparent.

Но повторюсь вариантов решения много, все зависит от вашей задачи, может быть вам лучше использовать ShowDialog(Me) тогда точно вы подберетесь к главной форме через owner, и в этом случае вообще лучше работать исключительно из MainForm.
В случае MDI если все правильно то через MdiParent.
...
Рейтинг: 0 / 0
Передача данных из одной формы в другую
    #32444706
Турист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу:
Dim myOwner As Form1 = CType(Me.Owner, Form1)
myOwner.btnImport.Enabled = True

Выдаёт ошибку:
Object reference not set to an instance of an object.

(Мне нужно передать данные не из дочерней формы в главную, а из одной дочерней формы в другую.)
...
Рейтинг: 0 / 0
Передача данных из одной формы в другую
    #32444747
Турист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уточню: не из MdiParent в MDIchild, а из MDIChild в MDIChild
...
Рейтинг: 0 / 0
Передача данных из одной формы в другую
    #32444753
Турист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь, не из MDIchild в MdiParent, а из MDIChild в MDIChild
...
Рейтинг: 0 / 0
Передача данных из одной формы в другую
    #32445052
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну owner не катит так как MDI. Добраться до main тогда можно через MdiParent

Попробуй так:
Код: plaintext
1.
2.
Dim myParent As Form1 = CType(Me.MdiParent, Form1) 
myParent.btnImport.Enabled = True 


А к любому Child подобраться можно через массив форм MDIChildren
блин подрукой basicа нет попробуй например так:

myParent.MdiChildren(0) ' вернет первую форму
myParent.MdiChildren(1) ' вторую и т.д
myParent.MdiChildren(2)
и т.д
все формы MDIChild.
...
Рейтинг: 0 / 0
Передача данных из одной формы в другую
    #32445271
Турист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из MDIchild в MDIparent данные удалось передать.
А с передачей из MDIchild в MDIchild проблемы.
Если написать myParent.MdiChildren(0), то я добераюсь до первой отрытой MDIparent-формы, но первой открытой MDIparent-формой может в процессе работы являться любая MDIparent-форма.

Возможно как-нибудь добраться до конкретной (по названию)
MDIparent-формы ?
...
Рейтинг: 0 / 0
Передача данных из одной формы в другую
    #32445299
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Следовательно и ищи среди открытых свою по названию формы например.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim myForm as Forms
For each myForm in myParent.MdiChildren()
    System.Windows.Forms.MessageBox.Show(myForm.Name)
   if myForm.Name =  "myName"  then
      System.Windows.Forms.MessageBox.Show( "Ура нашел" )
   endif
next 
...
Рейтинг: 0 / 0
Передача данных из одной формы в другую
    #32445306
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прощу прощения за очепятки негде проверить
но идея думаю понятна
...
Рейтинг: 0 / 0
Передача данных из одной формы в другую
    #32445436
Турист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ура!!! Всё работает!
Большое спасибо за информацию!
...
Рейтинг: 0 / 0
Передача данных из одной формы в другую
    #32500628
Турист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возник ещё один вопросик по этой теме.
Как менять свойства элементов одной MdiChild-формы из другой MdiChild-формы понятно. А как из одной MdiChild-формы, к примеру, запустить нажатие кнопки другой MdiChild-формы?

Заранее благодарен за полезную информацию.
...
Рейтинг: 0 / 0
Передача данных из одной формы в другую
    #32500706
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>А как из одной MdiChild-формы, к примеру, запустить нажатие кнопки другой MdiChild-формы?

Хммм
А что вы понимаете запустить нажатие кнопки другой формы, Если запустить тот код который бы произошел если бы пользователь нажал на эту кнопку?

Ну можно запустить таким способом:
Код: plaintext
1.
   mdiChild1.button1_Click(Nothing, Nothing) 


Но лучше сделать процедуру которая вызывается как нажатием кнопки так и другими способами.
Хороший пример с удалением записи: можно удалить запись как нажатием кнопки btnDelete, так и нажатием например клавиши Delete в TreeView.
Тогда проще создать процедуру:
Код: plaintext
1.
2.
3.
Sub Delete()
' Произвести удаление записи
End Sub


Которую вызывать как из события btnDelete.Click так и из (например) treeView1.KeyDown, а также например из другой формы.
...
Рейтинг: 0 / 0
Передача данных из одной формы в другую
    #32501359
Турист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В form1(MDIchild) содержится textbox1.

В form1 создал процедуру:

Sub test()
MsgBox(Me.TextBox1.Text)
End Sub

form2(MDIchild) содержит кнопку.
В процедуру нажатия кнопки пишу:

Dim myParent As mainForm = CType(Me.MdiParent, mainForm)
Dim myForm As Form

For Each myForm In myParent.MdiChildren()
If myForm.Name = "form1" Then
myForm... ' возможен ли здесь вызов процедуры test?
End If
Next

Подскажите, пожалуйста, как вызвать процедуру тест?
...
Рейтинг: 0 / 0
Передача данных из одной формы в другую
    #32501747
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
If myForm.Name = "form1" Then 
    CType(myForm, form1).Test()
End If 
...
Рейтинг: 0 / 0
Передача данных из одной формы в другую
    #32501854
Турист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо за полезную информацию.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Передача данных из одной формы в другую
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]