tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル配列を使ったイベント処理
記事No5351
投稿日: 2007/04/17(Tue) 09:37
投稿者ひでと
お世話になります。また、おかしな質問かもしれませんがよろしくお願いします。
以下のようにして、配列で宣言したオブジェクトでイベントを発生させ、
それを取得したいのですが、どのようにしたらよいのでしょうか?

Public Class Form1
    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a As New test1
        Dim b As New test2
        a.Obj.Add(b)
        a.Obj(0).Prop = 1
    End Sub
End Class

Class test1
    Private WithEvents newObj As New List(Of test2)
    Public Property Obj() As List(Of test2)
        Get
            If newObj Is Nothing Then
                Return New List(Of test2)
            Else
                Return newObj
            End If
        End Get
        Set(ByVal value As List(Of test2))
            newObj = value
        End Set
    End Property
    Private Sub Prop_Event() Handles newObj.???
        '処理
    End Sub
End Class

Class test2
    Private newProp As Integer
    Public Event Prop_Event()
    Public Property Prop() As Integer
        Get
            Return newProp
        End Get
        Set(ByVal value As Integer)
            newProp = value
            RaiseEvent Prop_Event()
        End Set
    End Property
End Class

[ツリー表示へ]
タイトルRe: 配列を使ったイベント処理
記事No5352
投稿日: 2007/04/17(Tue) 10:12
投稿者るしぇ
[AddHandler ステートメント]
http://msdn2.microsoft.com/ja-jp/library/7taxzxka(VS.80).aspx

Property で受け取るごとに設定するとか。
以下も合わせてお読みください。
[AddHandler と RemoveHandler]
http://msdn2.microsoft.com/ja-jp/library/6yyk8z93(VS.80).aspx

[ツリー表示へ]
タイトルRe^2: 配列を使ったイベント処理
記事No5353
投稿日: 2007/04/17(Tue) 12:09
投稿者ひでと
ありがとうございました。
> [AddHandler ステートメント]
> http://msdn2.microsoft.com/ja-jp/library/7taxzxka(VS.80).aspx
>
> Property で受け取るごとに設定するとか。
> 以下も合わせてお読みください。
> [AddHandler と RemoveHandler]
> http://msdn2.microsoft.com/ja-jp/library/6yyk8z93(VS.80).aspx
以下でできました。

Public Class Form1
    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a As New test1
        Dim b As New test2
        AddHandler b.Prop_Event, AddressOf a.Prop_Event
        a.Obj.Add(b)
        a.Obj(0).Prop = 1
    End Sub
End Class

[ツリー表示へ]