0

Visual Basic 2010 でクリックされた PictureBox 配列要素のインデックスとタグを知る必要があります。 タグインデックスは Public Integer 変数として淡色表示されます。Gboxは PictureBox 配列の名前です。Tag = sender.tagが機能します。 Index = NameofArray.Indexof(sender as PictureBox)は機能せず、 Index = clicked.Indexof(sender as PictureBox) も機能しません。

    Private Sub Gbox_Click(sender As Object, e As EventArgs)
    Dim clicked As PictureBox = CType(sender, PictureBox)
    SelectedColor.Image = clicked.Image
    Tag = sender.tag
    Index = Gbox.IndexOf(sender as picturebox)  'Does not work
    Index = clicked.Indexof(sender as PictureBox)  ' Does not work        
    End Sub

事前に割り当てられたタグとインデックスを計算で使用する必要があります。あなたの助けに感謝します。

4

2 に答える 2

0

最高の答えはRajaPrabhuからのもので、彼に感謝します。彼の解決策は単純で、いくつかの問題を解決しました。

    Index = Array.IndexOf(Gbox, sender)

この特定のプログラムの別の解決策を見つけましたが、 RajaPrabhuのおかげで、他のいくつかのインスタンスで彼の解決策を実装できるようになります。

私が見つけた解決策は次のとおりです。問題の一部は、ユーザーが考えを変えて別の選択を行い、選択のタグ属性を上書きする可能性があることでした。選択のタグ属性を使用して解決し、さらに大きな配列の配置のタグ属性も使用します。より大きな配列のタグ属性には、インデックスでもある、作成中のループの増分に等しいタグが割り当てられました。

これは、選択したアイテムのタグを取得しました:

    Private Sub SC_Click(sender As Object, e As EventArgs)
       Dim clicked As PictureBox = CType(sender, PictureBox)
       SelectedColor.Image = clicked.Image
       Tag = sender.tag
    End Sub

次に、配置配列のインデックスであるタグを取得しました。

    Private Sub Gbox_Click(sender As Object, e As EventArgs)
       Dim clicked As PictureBox = CType(sender, PictureBox)
       clicked.Image = SelectedColor.Image
       Index = sender.tag
    End Sub

ここで出力をテストして使用しました:

    Private Sub Guess_Click(sender As System.Object, e As System.EventArgs) Handles Guess.Click
       Dim PositionInRow As Integer
       TextBox1.Text = "Tag: " + Tag.ToString + ", Index: " + Index.ToString
       'MessageBox.Show(index.ToString)
       Row = Row + 1
       PositionInRow = Index Mod 5 + 1 'there are 13 rows of 5 positions
       'more code.......
    End Sub

レビューに時間を割いていただきありがとうございます。これは、非常に有用な情報と役立つ仲間がいっぱいの素晴らしいサイトです。

于 2013-04-02T16:14:33.017 に答える
0

これはそのインデックスを返します。これを試してください

Index = Array.IndexOf(Gbox, sender)

[注:上記のコードはfirst occuranceobjectその中のarray(From its lower bound- 0) を返します。ちなみに、その特定の存在しない-1場合は返されます]searched objectarray

于 2013-04-02T05:32:17.717 に答える