DataGridViewの指定した列の値一覧を取得

タグの編集
投稿者 まっさん  (社会人) 投稿日時 2018/5/23 15:22:24
DataGridViewの指定した列の値一覧を取得したいです。

例えば、以下のような表の場合で「列2」を指定した場合 
{A,B,C}のリストを得るにはどうすればいいですか?

日付型の列なんかでもセルのフォーマットに基づいて、
実際に表示されているテキストを取得したいです。
できればLINQを使って簡潔に書く方法を教えて欲しいです。

列1 列2
---------
1    A
2    B
3    C
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2018/5/24 02:35:20
こういうのは駄目ですかね。

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        DataGridView1.Columns.Clear()
        DataGridView1.DataSource = Nothing
        DataGridView1.AllowUserToAddRows = False
        DataGridView1.Columns.Add(New DataGridViewTextBoxColumn() With {.HeaderText = "列1", .SortMode = DataGridViewColumnSortMode.NotSortable})
        DataGridView1.Columns.Add(New DataGridViewTextBoxColumn() With {.HeaderText = "列2", .SortMode = DataGridViewColumnSortMode.NotSortable})
        DataGridView1.Rows.Add(1, "A")
        DataGridView1.Rows.Add(2, "B")
        DataGridView1.Rows.Add(3, "C")
        DataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText
        DataGridView1.SelectionMode = DataGridViewSelectionMode.FullColumnSelect
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        DataGridView1.CurrentCell = DataGridView1(1, 0)
        Dim obj = DataGridView1.GetClipboardContent()
        Dim data() As String = Split(obj.GetText(), vbCrLf)

        Array.ForEach(data, AddressOf MsgBox)  '確認 
    End Sub
End Class
投稿者 まっさn  (社会人) 投稿日時 2018/5/24 07:04:20
魔界の仮面弁士様、ありがとうございます。

教えてもらった方法で、列の値を列挙できました。
クリップボードを仲介するのですね。
どうもありがとうございました。