リストボックスを含むこのフォームがあります
Public Class Item
Private sList As List(Of Container)
Sub New(ByRef sList As List(Of Container))
InitializeComponent()
Me.sList = sList
End Sub
Private Sub Item_Load(sender As Object, e As EventArgs) Handles MyBase.Load
For Each c As Container In sList
ListBox1.Items.Add(c)
Next
ListBox1.DataSource = sList
ListBox1.DisplayMember = "sItem"
End Sub
End Class
これはクラスコンテナになります
Public Class Container
Private _sItemName As String
Private _sPrice As Single
Private _iNumber As Integer
Private _sItemString As String
Sub New(ByVal _sItemName As String, ByVal _sPrice As Single, ByVal _iNumber As Integer, ByVal _sItemString As String)
Me._sItem = _sItemName
Me._sPrice = _sPrice
Me._iNumber = _iNumber
Me._sItemString = _sItemString
End Sub
Public Property sItemName() As String
Get
Return _sItemName
End Get
Private Set(value As String)
_sItemName = value
End Set
End Property
Public Property sItemString() As String
Get
Return _sItemString
End Get
Private Set(value As String)
_sItemString = value
End Set
End Property
Public Property sPrice() As Single
Get
Return _sPrice
End Get
Private Set(value As Single)
_sPrice = value
End Set
End Property
Public Property iNumber() As String
Get
Return _iNumber
End Get
Private Set(value As String)
_iNumber = value
End Set
End Property
End Class
そして、それを出力に追加する場所があります
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim dgv As DataGridView = DataGridView1
Dim rowIndex As Integer = dgv.SelectedRows(0).Index
Dim _sItem As String = ""
Dim _iNumber As Integer = TextBox1.Text
Dim _sPrice As Single = dgv.Rows(rowIndex).Cells("Prix").Value * TextBox1.Text
Dim format As String = "{0, -10} {1, -10} {2, 5}"
_sItem = String.Format(format, dgv.Rows(rowIndex).Cells("Nom").Value.ToString, _sPrice.ToString("C2"), _iNumber.ToString)
Console.WriteLine(_sItem)
Dim container As New Container(_sItem, _sPrice, _iNumber, dgv.CurrentRow.Cells("Nom").Value.ToString)
If (updateDGV(container) = True) Then
sList.Add(container)
End If
TextBox1.Clear()
TextBox1.Focus()
updateLabel()
End Sub
私の質問は、lsitbox の出力がこのようになっている理由です。
そして、コンソール出力は
私が望むのは、リストボックスの出力がコンソールと同じであることですが、形式が機能していないようで、そこから、これを機能させる方法がわかりません。リストボックスにテキストが表示されない理由について、ヘルプと説明を使用できますちゃんと
私が明確であることを確認するために:リストボックスの出力をコンソール出力と同じに見せる方法はありますか
編集:リストビュー
ご覧のとおり、データはバインドされているので、そうすると
リストボックスからのコンテナアクセス
Dim obj As Object = ListBox1.SelectedItem
If (TypeOf obj Is Container) Then
Dim c As Container = CType(obj, Container)
Console.WriteLine(c.iNumber)
End If
1行を選択するとオブジェクトを返すことができます。これは、リストビューと追加の方法がわからないことです( for eachItems.add(c)
は、リストビューに相当するものを知りません)