WithEvents で配列やハッシュを使うには?

解決


ドリフト  2005-09-19 18:55:28  No: 125477  IP: [192.*.*.*]

WithEventsで配列やハッシュを使おうとするとエラーがおきます

    Friend WithEvents Button(0) As System.Windows.Forms.Button


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles MyBase.Load
        MsgBox("新しいボタン")
        Me.Button(0) = New System.Windows.Forms.Button
        Me.SuspendLayout()

        Me.Button(0).Location = New System.Drawing.Point(0, 0)
        Me.Button(0).Name = "Button0"
        Me.Button(0).Size = New System.Drawing.Size(80, 32)
        Me.Button(0).TabIndex = 0
        Me.Button(0).Text = "Button0"

        Me.Controls.Add(Me.Button0)
    End Sub

のようにしたいのですがどうしたらよいでしょうか?

編集 削除
ガッ  2005-09-19 20:39:39  No: 125478  IP: [192.*.*.*]

WithEventsについて調べましたか?
> Friend WithEvents Button(0) As System.Windows.Forms.Button
Buttonが配列型なので使えないだけだと思うのですが…

※AddHandlerなるものを発見…

編集 削除
ドリフト  2005-09-23 14:27:17  No: 125479  IP: [192.*.*.*]

どうしてもオブジェクトを配列などで使いたいのですが
やっぱり無理でしょうか?

編集 削除
我龍院忠太  2005-09-23 15:14:23  No: 125480  IP: [192.*.*.*]

AddHandler Button(0).Click, AddressOf Button_click
じゃあだめですか。

編集 削除
ドリフト  2005-09-23 15:15:00  No: 125481  IP: [192.*.*.*]

AddHandlerを使ったらできるようになりました。
ガッさんのおかげで無事解決しました。
まことにありがとうございました。

編集 削除
ドリフト  2005-09-23 15:16:52  No: 125482  IP: [192.*.*.*]

すみません
我龍院忠太さんもありがとうございました。

編集 削除
ドリフト  2005-09-23 15:18:43  No: 125483  IP: [192.*.*.*]

こういうのを書きました

    Friend Button(1000) As System.Windows.Forms.Button

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        MsgBox("新しいボタン")
        Me.Button(0) = New System.Windows.Forms.Button
        Me.SuspendLayout()

        Me.Button(0).Location = New System.Drawing.Point(0, 0)
        Me.Button(0).Name = "Button0"
        Me.Button(0).Size = New System.Drawing.Size(64, 32)
        Me.Button(0).TabIndex = 0
        Me.Button(0).Text = "New"

        Me.Controls.Add(Me.Button(0))

        AddHandler Button(ii).Click, AddressOf BTN_CLICK

    End Sub


    Private Sub BTN_CLICK(ByVal sender As System.Object, ByVal e As System.EventArgs)
        MsgBox("hello, word!")
    End Sub

本当にありがとうございました

編集 削除
我龍院忠太  2005-09-23 15:56:42  No: 125484  IP: [192.*.*.*]

>AddHandler Button(ii).Click, AddressOf BTN_CLICK
AddHandler Button(0).Click, AddressOf BTN_CLICK

>MsgBox("hello, word!")
#MsgBox("Hello, World!")の方が良いかも、なんとなく。orz

編集 削除