Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 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-сайт: www.vbnet.ru
 Профиль | | #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-сайт: www.vbnet.ru
 Профиль | | #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
    ;Dim 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

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам