Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
【VB.NET】ControlCollectionなどからコントロール配列の「添え字」を取得したい
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=25967#CommentId69548
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
yukihiro
 (社会人)
投稿日時
2015/12/8 00:18:04
こんばんは、はじめまして。
早速ですが、
環境:
Win7+VisualStudio2013
目的:
前提としてVB6.0のコードを.NET4.5化したいというお題があり、
VB6で使用されていた、ボタンコントロールなどの配列に似た機能を使用したいと思っています。
(アップグレードマネージャーでVB6のコードをアップグレードした所、BaseOCXArrayは継承できな作りになっており使用できないとのメッセージが表示されたため)
ここでやりたい事は
Senderなどで送られたオブジェクトを使用して
VB6で言うコントロール配列の「添え字」を取得したいです。
コレクションを使用して試しにコードを書いてみたのですが、上手くいきません。
もし、分かる方がいらっしゃるのでしたら、教えて頂きたいです。
(最悪、Button1、Button2のイベントハンドラからそれぞれ「0」とか「1」とかの引数を付加して関数に飛ばせばいいのですが、
コレクションや配列を使用して、コードが書けるならばその方が良いと思い、投稿させていただきました。
書いてみたコード:
(Button1, Bottun2, Label1は、Visualstudioのデザイナーを使用し、Form1上に配置しています)
Public Class Form1
Public cltCollection As System.Windows.Forms.Control.ControlCollection
'フォームのロード
'ボタンコントロールを格納するコレクションの作成
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.cltCollection = New System.Windows.Forms.Control.ControlCollection(Me)
cltCollection.Add(Button1)
cltCollection.Add(Button2)
AddHandler Button1.Click, AddressOf buttons_Click
AddHandler Button2.Click, AddressOf buttons_Click
End Sub
'各ボタンが押された時のイベント
'可能ならこの中で添え字を取得したい
Private Sub buttons_Click(sender As Object, e As EventArgs)
Dim index As Integer
index = cltCollection.IndexOf(sender)
index = cltCollection.
Label1.Text = "クリックされたボタン = " & index.ToString & "です"
'この場合、「0」や「1」ではなく「-1」が表示される
End Sub
End Class
以上、散文で申し訳ありませんが、よろしくお願いいたします。