Страница: 1 |
Страница: 1 |
Вопрос: Генерим событие
Добавлено: 02.08.04 23:23
Автор вопроса: danser | ICQ: 299287824
Есть клас где описано собитие:
public Class ABC
public event MyEvent()
end Class
Есть форма где обявлен обект класа ABC:
dim raiseevents Obj as new ABC()
Как мне с обработчика собития формы Closed визвать собитие MyEvent класа ABC?
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #1
Добавлено: 03.08.04 09:17
Возбуждать событие может только его владелец, то есть в твоем случае
только сам класс ABC.
Можно сделать метод, который будет возбуждать событие.. Например так:
Public Class ABC
Public Event MyEvent()
Public Sub RaiseMyEvent ()
RaiseEvent MyEvent
End Sub
End Class
...
'Создаем объект
Dim a As New ABC
'Подписываемся на событие
AddHandler a.MyEvent, AddressOf MyEventHandler
...
'Возбуждаем событие
a.RaiseMyEvent
Номер ответа: 2
Автор ответа:
danser
ICQ: 299287824
Вопросов: 76
Ответов: 209
Профиль | | #2
Добавлено: 03.08.04 13:10
Да идею уловил но что такое?
'Подписываемся на событие
AddHandler a.MyEvent, AddressOf MyEventHandler
Где в моем случае это используется?
Номер ответа: 3
Автор ответа:
Андрей Никитин
ICQ: 325172082
Вопросов: 3
Ответов: 81
Профиль | | #3
Добавлено: 03.08.04 15:12
>Где в моем случае это используется?
"AddHandler a.MyEvent, AddressOf MyEventHandler" - этой строкой ты сообщаешь среде, что твой класс (ABC) может генерировать событие MyEvent и что при этом событии должен вызываться обработчик MyEventHandler(...)
Номер ответа: 4
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #4
Добавлено: 03.08.04 17:23
Это подписка на событие...
Public Sub MyEventHandler ()
MessageBox.Show ("Событие!!!")
End Sub
...
Dim a As New ABC
AddHandler a.MyEvent, AddressOf MyEventHandler
Номер ответа: 5
Автор ответа:
Екатерина
Вопросов: 23
Ответов: 25
Профиль | | #5
Добавлено: 25.04.06 12:05
Простите, так все работает, а как наоборот из класса при каком то событии вызвать функцию или событие формы его породившей, так сказать нужна обратная связь
т.е.
Public Class Form1
Inherits System.Windows.Forms.Form
 im MyClass1 As New ClassLibrary1.Class1
#Region " Windows Form Designer generated code "
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
'Add any initialization after the InitializeComponent() call
End Sub
'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
Friend WithEvents Button1 As System.Windows.Forms.Button
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.Button1 = New System.Windows.Forms.Button
Me.SuspendLayout()
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(56, 32)
Me.Button1.Name = "Button1"
Me.Button1.TabIndex = 0
Me.Button1.Text = "Создать Dll"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(272, 342)
Me.Controls.Add(Me.Button1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MyClass1.RaiseMyEvent1()
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler MyClass1.MyEvent1, AddressOf MyClass1.MyEvent1Handler
End Sub
Public Function MyInt()
End Function
Нужно из class1 вызвать Function MyInt из Form1