タイトル | : クリックイベント発生時のIndex番号取得 |
記事No | : 7806 |
投稿日 | : 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から取得する方法も考えたのですが、もっといい方法がある気がして投稿させていただきました。
どなたかご存知の方がいらっしゃいましたらよろしくお願いします。
|