掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
リストボックスで1つの項目に複数のデータを持たせる方法 (ID:91222)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
時間があったのでサンプルコード♪ 自分で書いたコードと見比べてみて下さい。 >としても動くんですが、別にDirectCastって無くてもいいんですよね。 DirectCast のヘルプは読まれました?型変換をしている 訳ですが、[VB6.0]時代でもバグのない良いプログラムを書く人は、 データ型をはっきり意識していました。[VB.NET]でもよりレベルの 高いプログラムを目指すならデータ型をハッキリさせ、『暗黙の型変換』 や『遅延バインディング』はできるだけ避けましょう。 例えばプログラムの先頭に Option Strict On と記述してみましょう。コンパイルエラーメッセージが表示されます。 [VB.NET] Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim wListItem As MyListItem Dim wStr As String = [String].Empty Dim i As Integer ' 設定 For i = 0 To 3 wListItem = New MyListItem(4) With wListItem .Items(0) = wStr.PadLeft(3, Chr(97 + i)) .Items(1) = CStr(i \ 2 + 1) & "-" & CStr(i Mod 2 + 1) .Items(2) = "説明" & CStr(i + 1) .Items(3) = "・・・" .Items(4) = "・・・" End With Me.ListBox1.Items.Add(wListItem) Next ' 取り出し wListItem = DirectCast(Me.ListBox1.Items(1), MyListItem) Debug.WriteLine(wListItem.Items(2)) End Sub Public Class MyListItem Private mItem() As String Public Sub New(ByVal ItemIndex As Integer) ReDim Me.mItem(ItemIndex) End Sub Public Property Items() As String() Get Return Me.mItem End Get Set(ByVal Value As String()) Me.mItem = Value End Set End Property Public Overrides Function ToString() As String Dim wStrBuilder As New System.Text.StringBuilder Dim i As Integer With wStrBuilder For i = 0 To Me.mItem.GetLength(0) - 1 .Append(Me.mItem(i)).Append(", ") Next Return .ToString End With End Function End Class
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.