2

こんにちは、VB.NET にリストビューがあり、その中に名前とボタンを次のように挿入したいと考えています。 listeview とその行の左右に配置された 2 つのコントロール) VB.NET で可能ですか? 私の質問が明確だったことを願っています。ありがとう。

4

2 に答える 2

3

簡単ではありません。ただし、DataGridView はこれを簡単に処理できます。

ここに画像の説明を入力

    DataGridView1.Columns.AddRange(New DataGridViewColumn(1) _
                                    {New DataGridViewTextBoxColumn() With _
                                     {.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill, .HeaderText = "Text"},
                                     New DataGridViewButtonColumn() With _
                                     {.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill, .HeaderText = "Button"}})
    DataGridView1.Rows.Add({"row 1 text", "row 1 button"})
    DataGridView1.Rows.Add({"row 2 text", "row 2 button"})

これらのプロパティはデザイナーから設定でき、行を手動で追加するのではなく、おそらく datagridview をバインドします。

ボタンのクリックで行を削除するには、CellContentClick イベントを使用します。

Private Sub DataGridView1_CellContentClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
    'check it the button column being clicked, and check they are not clicking the column heading
    If e.ColumnIndex = 1 And e.RowIndex >= 0 Then
        DataGridView1.Rows.RemoveAt(e.RowIndex)
    End If
End Sub

データバインディングを使用する場合は、datagridview ではなく、データ オブジェクトから行を削除する必要があります。

編集アイテムのすべての列をリストに抽出します:

 Dim columnOneValues As New List(Of String)

 For Each row As DataGridViewRow In DataGridView1.Rows
        columnOneValues.Add(row.Cells(0).Value.ToString)
 Next
于 2012-12-01T06:54:39.023 に答える