tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル クリックイベント発生時のIndex番号取得
投稿日: 2008/07/11(Fri) 09:21
投稿者皐月
いつもお世話になっております。
VB6からVB2005に移行してプログラムを作成しています。

VB6.0でいうIndex番号を取得したいのですが、どうしてもうまくいかないので質問させてください。

    Private MyButtones As Button()

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim i As Integer        

        Me.MyButtones = New Button(94) {}

        For i = 0 To 94
            Me.MyButtones(i) = New Button()

            Me.MyButtones(i).Height = 23
            Me.MyButtones(i).Width = 150

            Me.MyButtones(i).Name = "MyButton" & i.ToString

            If i > 79 Then
                Me.MyButtones(i).Left = 800 + 10 + 20
                Me.MyButtones(i).Top = (i - 80) * 30 + 10
            ElseIf i > 59 Then
                Me.MyButtones(i).Left = 600 + 10 + 20
                Me.MyButtones(i).Top = (i - 60) * 30 + 10
            ElseIf i > 39 Then
                Me.MyButtones(i).Left = 400 + 10 + 20
                Me.MyButtones(i).Top = (i - 40) * 30 + 10
            ElseIf i > 19 Then
                Me.MyButtones(i).Left = 200 + 10 + 20
                Me.MyButtones(i).Top = (i - 20) * 30 + 10
            Else
                Me.MyButtones(i).Left = 10 + 20
                Me.MyButtones(i).Top = i * 30 + 10
            End If

            'イベントハンドラに関連付け
            AddHandler Me.MyButtones(i).Click, AddressOf Me.MyButtones_click

            ' このコントロールをフォームに追加する
            Me.Controls.Add(Me.MyButtones(i))

        Next i

        For i = 0 To 94
            Me.MyButtones(i).Text = Chname(i)
        Next
    End Sub

    Private Sub MyButtones_click(ByVal sender As Object, ByVal e As EventArgs)

        Dim ColorDialog1 As New ColorDialog

        With ColorDialog1
            If .ShowDialog = Windows.Forms.DialogResult.OK Then
                CType(sender, System.Windows.Forms.Button).BackColor = .Color
                PVColor(i) = ColorTranslator.ToWin32(.Color)    'ここでインデックス番号を取得したい
            End If
        End With
    End Sub

Form1_Loadのイベントでボタンの配列を作り、Form画面上に並べました。
これをイベントハンドラに関連付けして、ボタンが押されたときに発生するイベントハンドライトは作成できたのですが、このとき押されたボタンがどのインデックス番号なのか取得する方法がわかりません。
上のソースだと下から4番目のコードで

PVColor(i) = ColorTranslator.ToWin32(.Color)    'ここでインデックス番号を取得したい

です。今の状態ではiの部分にどのようなコードを記述すればよいのかわからないため、この部分で詰まっています。
作成した配列のボタンの名前にIndexの番号が含まれているので、そこから、取得する方法や、TabIndexから取得する方法も考えたのですが、もっといい方法がある気がして投稿させていただきました。

どなたかご存知の方がいらっしゃいましたらよろしくお願いします。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。