обмен данных между usercontrol и формой
От: cru3l  
Дата: 15.04.10 11:47
Оценка:
Напишу задачу абстрактно, так как суть одна и та же

Имеется проект типа ActiveX Control. В проекте есть usercontrol и form1. На usercontrol есть label и кнопка показывающая form1. На form1 есть кнопка, которая должна поменять в usercontrol текст лейбла на "hello world". Как это сделать?

Казалось бы, просто объвить паблик функцию в user control и вызывать ее из формы. Но, вызвать же можно только метод экземпляра контрола (нарисовав его на форме), а не самого UserControl. А мне нужно чтобы результат был в виде компонента. Как быть?
vb6 usercontrol activex
Re: обмен данных между usercontrol и формой
От: ZAMUNDA Земля для жалоб и предложений
Дата: 15.04.10 12:52
Оценка:
Здравствуйте, cru3l, Вы писали:

C>Казалось бы, просто объвить паблик функцию в user control и вызывать ее из формы. Но, вызвать же можно только метод экземпляра контрола (нарисовав его на форме), а не самого UserControl. А мне нужно чтобы результат был в виде компонента. Как быть?

А ты объяви Public Property и его в Property пропишу в Form Design.
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
Re[2]: обмен данных между usercontrol и формой
От: Other Sam Россия  
Дата: 18.04.10 07:41
Оценка:
On 04/15/2010 07:52 PM, ZAMUNDA wrote:
> А ты объяви Public Property и его в Property пропишу в Form Design.

Можно еще в форме прописать ивент, и в контроле к нему привязываться

Dim WithEvents myForm As MyForm

Public Sub ButtonShowForm_Click()
   Set myForm = new MyForm
   myForm.show
End Sub

Public Sub myForm_OnChangeLabel(newText As String)
   myLabel.text = newText
End Sub


Второй способ, без использования ивентов — передавать некоторый
интерфейс в форму.
   Set myForm = new MyForm
   Set myForm.parentControl = Me
   myForm.show
Posted via RSDN NNTP Server 2.1 beta
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.