Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Gelo123321
21 / 21 / 8
Регистрация: 05.01.2012
Сообщений: 282
Завершенные тесты: 1
1

Программно задать родительскую форму

14.01.2014, 17:56. Просмотров 1354. Ответов 12
Метки нет (Все метки)

Создаю собственный класс формы, столкнулся с проблемой, как сделать, что бы форма с которой вызывают мою форму, была родительской?
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2014, 17:56
Ответы с готовыми решениями:

Программно задать принтеру двустороннюю печать
Всем привет. Подскажите как реализовать следующую задачу. Необходимо посмотреть свойства принтера и...

Задать программно ширину столбцов DataGridView
Загружаю данные в DataGridView из Excel. Первые столбцы 0-2 всегда присутствуют им задаю в...

Как программно задать label.Location.Y?
есть Public Class Screen Private Sub Screen_Load(ByVal sender As System.Object, ByVal e As...

Программно задать ширину колонок DataGridView
Всем привет! Подскажите как программно задать ширину колонок DataGridView?

Программно задать ширину и высоту графическому объекту
Подскажите как программно задавать ширину и высоту графическом объекту ? На форме есть еще...

12
Release
Заблокирован
14.01.2014, 19:11 2
Gelo123321, применять свой класс для родительской формы, иначе вариантов не вижу.
0
Gelo123321
21 / 21 / 8
Регистрация: 05.01.2012
Сообщений: 282
Завершенные тесты: 1
14.01.2014, 23:04  [ТС] 3
Release, поподробнее, если можно.
0
Qwertiy
824 / 632 / 100
Регистрация: 20.08.2013
Сообщений: 2,524
15.01.2014, 13:05 4
Через WinApi?

Что вообще надо-то?
0
15.01.2014, 13:05
Gelo123321
21 / 21 / 8
Регистрация: 05.01.2012
Сообщений: 282
Завершенные тесты: 1
15.01.2014, 14:36  [ТС] 5
Qwertiy, я создаю собственный класс формы. Потом я эту форму вызываю, например из Form1, посредством нажатия на кнопку Button1. Как в моем классе прописать, что бы та форма откуда ее вызывают мою форму, становилась родительской для моей. Вот это и надо. Могу дать свой код, но там только код формы, и то зачаточный -_- без попыток сделать форму родительской.
0
Памирыч
Почетный модератор
21131 / 8860 / 1080
Регистрация: 11.04.2010
Сообщений: 11,012
15.01.2014, 15:44 6
vb.net
1
2
3
4
        Dim SomeForm As New Form1
        SomeForm.TopLevel = False
        SomeForm.Parent = Me
        SomeForm.Show()
Me - текущий класс
0
Gelo123321
21 / 21 / 8
Регистрация: 05.01.2012
Сообщений: 282
Завершенные тесты: 1
16.01.2014, 23:20  [ТС] 7
Памирыч, а если моя форма вызывается на с Form1, a с Form2?
0
Памирыч
Почетный модератор
21131 / 8860 / 1080
Регистрация: 11.04.2010
Сообщений: 11,012
17.01.2014, 06:09 8
Gelo123321, в свойствах проекта установите "Начальную форму"
0
Gelo123321
21 / 21 / 8
Регистрация: 05.01.2012
Сообщений: 282
Завершенные тесты: 1
17.01.2014, 18:08  [ТС] 9
Памирыч, а что если у моей формы будет возможность вызываться как с Form1 так и с Form2. Лучше сделать что бы при создании класса, в этом самом классе присваивалась "материнская" форма та, из которой вызывают мой класс. Но как так сделать я не представляю. Разве что, никак.
0
Памирыч
Почетный модератор
21131 / 8860 / 1080
Регистрация: 11.04.2010
Сообщений: 11,012
17.01.2014, 18:36 10
Я так и не понял вопроса.
Если нужно узнать, с какой формы вызвали текущую, то, боюсь, без переменных в глобальном модуле будет нелегко.

В модуле например
vb.net
1
    Public DrinkTheCoffee As Form
Потом при вызове какой либо формы, например, третьей
vb.net
1
2
        DrinkTheCoffee = Me
        Form3.Show()
А в загрузке этой формы (и любой)

vb.net
1
2
3
    Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Text = DrinkTheCoffee.Name
    End Sub
В заголовке формы будет имя той, с которой ее вызвали.

В общем, я не понял, что нужно )
0
Qwertiy
824 / 632 / 100
Регистрация: 20.08.2013
Сообщений: 2,524
18.01.2014, 00:08 11
Это точно не подходит?

vb.net
1
YourOtherForm.ShowDialog()
Тогда так:
vb.net
1
2
3
4
5
6
7
8
9
10
11
Public Overloads Sub Show(Owner As Form)
  With Me
    .TopLevel = False
    .Parent = Owner
    .Show()
  End With
End Sub
 
'==========================
 
YourOtherForm.Show(Me)
1
Gelo123321
21 / 21 / 8
Регистрация: 05.01.2012
Сообщений: 282
Завершенные тесты: 1
19.01.2014, 16:29  [ТС] 12
Qwertiy, при вызове моей формы методом MeForm.Show(Me) она оказывается вросшей в Form1 о_О.
Мне надо что бы моя форма, брала значения например, цвета BackColor в родительской форме и устанавливала себе при вызове, или при вызове располагалась по центре своей формы "матери" (StartPosition = FormStartPosition.CenterParent). И для этого я придумал сделать для нее родительскую форму ту, из которой вызывают мою форму. То есть неважно вызвали ли мою MeForm из Form1, или Form2, каждый раз она как бы будет разная (должна быть) так как будет брать цвет и прочие свойства из той формы из которой ее вызывают.

Возможно это можно сделать как то и по другому, но как, я еще не придумал.

Надеюсь понятно объяснил...

Добавлено через 2 часа 2 минуты
Qwertiy, безусловно в вашем коде кроется разгадка поставленной мною задачи, но не могу понять, почему моя форма появляется "вросшей" в Form1. К тому же StartPosition = FormStartPosition.CenterParent не работает.
0
Qwertiy
824 / 632 / 100
Регистрация: 20.08.2013
Сообщений: 2,524
15.03.2014, 11:04 13
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Gelo123321 Посмотреть сообщение
Мне надо что бы моя форма, брала значения например, цвета BackColor в родительской форме и устанавливала себе при вызове
vb.net
1
2
3
4
5
Public Overloads Sub Show(Owner As Form)
  With Me
    .BackColor = Owner.BackColor
  End With
End Sub
1
15.03.2014, 11:04
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2014, 11:04

Задать фокус на определенную форму
Доброго времени суток! Уважаемые программисты, просьба помочь в решении одной проблемы. Делаю...

Программно задать вертикальный сдвиг DOC.PrintPage при выводе на печать
Есть форма, которая после заполнения выводит текст на печать: Private Sub DOC_print(ByVal sender...

Как программно закрыть форму ShowDialog
Во время работы программы блокирую ее главное окно открытием формы Form1.ShowDialog(). После...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.