Передача объекта "форма" в качестве аргумента

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

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

Thrasher
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 4
Зарегистрирован: 06.10.2008 (Пн) 13:49

Передача объекта "форма" в качестве аргумента

Сообщение Thrasher » 06.10.2008 (Пн) 14:25

Здравствуйте! Вот такая ситуация: на одной форме (frmMain) есть две кнопки (btnFedCl, btnCorpCl), которые делают видимыми соответственно формы frmFedCl и frmCorpCl и помещают текстовые данные и картинки на формы, вопрос таков - можно ли как-нибудь в отдельную процедуру (чтобы два раза большой отрезок кода не прогонять) передать форму в качестве аргумента :oops: :

Код: Выделить всё
    Private Sub btnFedCl_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFedCl.Click
         Call ChecknFill(frmFedCl)
    End Sub


Код: Выделить всё
Sub ChecknFill(ByRef Forma)

With Forma
      .object1.text = value1
      .object2.text = value2
...

End Sub


Заранее спасибо за уделенное внимание.

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Передача объекта "форма" в качестве аргумента

Сообщение Williams » 06.10.2008 (Пн) 15:11

Начиная с 2005 есть My.Application.OpenForms
И вы думаете, что вас оставят в живых после прочтения этого поста?

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

Re: Передача объекта "форма" в качестве аргумента

Сообщение Viper » 06.10.2008 (Пн) 15:18

Williams писал(а):Начиная с 2005 есть My.Application.OpenForms
Это ответ?
2 Thrasher, передать то можно, но если это разные формы, то как ты их собираешься обрабатывать? Или это все же разные экземпляры одного класса? Во втором случае все достаточно просто. А первый вариант сложно реализовать.
Весь мир матрица, а мы в нем потоки байтов!

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Передача объекта "форма" в качестве аргумента

Сообщение Williams » 06.10.2008 (Пн) 15:31

Viper писал(а):
Williams писал(а):Начиная с 2005 есть My.Application.OpenForms
Это ответ?
2 Thrasher, передать то можно, но если это разные формы, то как ты их собираешься обрабатывать? Или это все же разные экземпляры одного класса? Во втором случае все достаточно просто. А первый вариант сложно реализовать.


Исходя из сообщения, ему нужно обработать открытые формы по нажатию кнопки, это гораздо удобнее можно сделать вышеуказанным способом. Да, это ответ.
И вы думаете, что вас оставят в живых после прочтения этого поста?

Thrasher
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 4
Зарегистрирован: 06.10.2008 (Пн) 13:49

Re: Передача объекта "форма" в качестве аргумента

Сообщение Thrasher » 06.10.2008 (Пн) 15:42

Viper писал(а):
Williams писал(а):Начиная с 2005 есть My.Application.OpenForms
Это ответ?
2 Thrasher, передать то можно, но если это разные формы, то как ты их собираешься обрабатывать? Или это все же разные экземпляры одного класса? Во втором случае все достаточно просто. А первый вариант сложно реализовать.

К сожалению, это не второй случай :? Ну вот, если можно передать, то как? :) Просто, если я его передаю, как показано в коде, то у меня не получается обратиться к объектам формы.

Williams писал(а):Начиная с 2005 есть My.Application.OpenForms

Не понимаю, как это может чем-то помочь, я уже пытался использовать My.Forms, который ничем не хуже в этой ситуации.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Re: Передача объекта "форма" в качестве аргумента

Сообщение Sebas » 06.10.2008 (Пн) 15:45

Thrasher писал(а):передать форму в качестве аргумента :oops: :


формы -экземпляры одного класса?

ТЫ формы руками создаёшь или как в VB6 обращаешься к определению класса, а не к экземпляру?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Thrasher
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 4
Зарегистрирован: 06.10.2008 (Пн) 13:49

Re: Передача объекта "форма" в качестве аргумента

Сообщение Thrasher » 06.10.2008 (Пн) 15:49

Sebas писал(а):
Thrasher писал(а):передать форму в качестве аргумента :oops: :


формы -экземпляры одного класса?

ТЫ формы руками создаёшь или как в VB6 обращаешься к определению класса, а не к экземпляру?


Add - New Item - Windows Form

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Передача объекта "форма" в качестве аргумента

Сообщение Williams » 06.10.2008 (Пн) 15:51

Thrasher писал(а):
Sebas писал(а):
Thrasher писал(а):передать форму в качестве аргумента :oops: :


формы -экземпляры одного класса?

ТЫ формы руками создаёшь или как в VB6 обращаешься к определению класса, а не к экземпляру?


Add - New Item - Windows Form


А ты понимаешь разницу между My.Forms и My.Application.OpenForms?
И вы думаете, что вас оставят в живых после прочтения этого поста?

Thrasher
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 4
Зарегистрирован: 06.10.2008 (Пн) 13:49

Re: Передача объекта "форма" в качестве аргумента

Сообщение Thrasher » 06.10.2008 (Пн) 16:19

OpenForms - собрание всех открытых форм приложения, My.Forms - отдельные экземпляры каждой формы проекта.

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Передача объекта "форма" в качестве аргумента

Сообщение Nord777 » 06.10.2008 (Пн) 21:49

Thrasher писал(а): Просто, если я его передаю, как показано в коде, то у меня не получается обратиться к объектам формы.

Sub ChecknFill(ByRef Forma)
Надо так:
Код: Выделить всё
Sub ChecknFill(ByVal Forma As ИмяКонкретногоКласса )
Либо в теле метода приводить к нужному типу.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Передача объекта "форма" в качестве аргумента

Сообщение Денис » 07.10.2008 (Вт) 15:01

Вообще, Thrasher, если уж ты кодишь на .NET, то коди уж объектно-ориентированно что ли...
То есть у тебя в формах будут публичные методы, например, ShowFedCl и ShowCorpCl в методах описан код для выполнения всех необходимых действий, и отображение окна. А кнопками ты просто вызываешь соответствующие методы.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.


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

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

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

    TopList