アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB.NET 初心者です。
コンボボックスに隠し情報としてTagにidを設定しておき
後でボタンが押下された時にそのTagからidを取得し、次の
処理を行う様にしたいと考えております。

簡単な構成は以下のようになってます。

'構造体A
Public Structure A
Dim id As String
Dim name As String
End Structure

Dim Tag(1) As A
Dim Item(1) As String

Tag(0) = 1
Tag(2) = 2

Item(0) = "データ1"
Item(1) = "データ2"

' コンボボックスに値の設定
cboData.Items.AddRange(KeyItems)
cboData.Tag = TagItems


ボタンが押下された時に選択されている項目のidの取得方法を
教えて頂きたいと思います。よろしくお願い致します。

A 回答 (1件)

書かれていた、既存のソースから、したいことを十分に理解できませんでした。


特に突然出てきた「KeyItems」と「TagItems」は全く理解できません。
それ以外の変数も、変数名の規約違反っぽいです。


そこで簡単なサンプルを張っておきます。
したい事と、違う部分があれば言って下さい。
#Regionの自動生成部は無視してください。



Public Class Form1
  Inherits System.Windows.Forms.Form

  Const DEF_ARRAY_MAX As Integer = 10

  Public Structure A
    Dim id() As String
    Dim name() As String
  End Structure

  Dim myItme As A

#Region " Windows フォーム デザイナで生成されたコード "
  Friend WithEvents Button1 As System.Windows.Forms.Button
  Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox
  などなど。。。
#End Region

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

    ReDim myItme.id(DEF_ARRAY_MAX)
    ReDim myItme.name(DEF_ARRAY_MAX)

    For i = 0 To DEF_ARRAY_MAX

      myItme.id(i) = ((i + 1) * 100).ToString
      myItme.name(i) = String.Concat("データ", StrConv((i + 1).ToString, VbStrConv.Wide))
    Next i

    ComboBox1.Items.AddRange(myItme.name)
  End Sub

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    If ComboBox1.SelectedItem Is Nothing Then
      Me.Text = "未選択"
    Else
      Me.Text = String.Concat( _
            "タグ番号=", myItme.id(ComboBox1.SelectedIndex) _
             )
    End If
  End Sub
End Class
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!