有什么办法可以用listview索引调用datagridview的维

时间:2020-08-08 18:02:12

标签: vb.net listview

我知道我的问题很复杂,我不知道该怎么解释。

我有:

  1. 具有2列A1和A2以及A3 ... A200的datagridview。
  2. 有3个列表框: 列表框1包含此列表中datagridview列标题A1至A200的名称,我填充了列表视图2和3。
  3. 例如列表框2 = A1 /列表框3 = A3

我的代码:

Dim iA1 = (From row As DataGridViewRow In DataGridView1.Rows Where ...etc)).ToArray
Dim iA2 = (From row As DataGridViewRow In DataGridView1.Rows Where ...etc)).ToArray
Dim iA3 = (From row As DataGridViewRow In DataGridView1.Rows Where ...etc)).ToArray
Dim iA4 ... iA200

Dim Pearson As Double = Correlation.Pearson(ListBox2, ListBox3).ToString("0.00000")

我想知道列表框1和2是否可以引用昏暗的A1和昏暗的A3

enter image description here

1 个答案:

答案 0 :(得分:0)

这是我从您的帖子中了解的信息

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        With DataGridView1
            For i As Integer = 0 To 5
                .Columns.Add("ColA" & (i + 1).ToString, "A" & (i + 1).ToString)
                .Columns(i).AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
            Next
            For i As Integer = 0 To 3
                .Rows.Add()
                For c As Integer = 0 To .Columns.Count - 1
                    Randomize()
                    'put some values
                    .Item(c, i).Value = CInt(Rnd() * 30.7)
                Next
            Next

            .AllowUserToAddRows = False
            .Dock = DockStyle.Top
        End With

    End Sub


    Function ColumnValues(Column As String) As Double()
        Dim col As DataGridViewColumn() = (From cx As DataGridViewColumn In DataGridView1.Columns _
                                           Where UCase(cx.HeaderText) = UCase(Column) _
                                           ).ToArray

        Dim c As Integer = col.Count
        If c <> 1 Then
            Throw New Exception("Error :Column [ " & Column & " ] Not found")
            'Or
            'Return Nothing
        End If

        c = col(0).Index


        Return (From row As DataGridViewRow In DataGridView1.Rows _
                Where row.Cells(c).Value IsNot Nothing _
                Select Convert.ToDouble(row.Cells(c).FormattedValue) _
                ).ToArray

    End Function

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim d1 As Double() = ColumnValues("A1")
        Dim d2 As Double() = ColumnValues("a5")

        Dim s As String = "1st Column values " & vbCrLf
        For Each a In d1
            s &= a.ToString & " "
        Next

        s &= vbCrLf & "2nd column values" & vbCrLf
        For Each a In d2
            s &= a.ToString & " "
        Next
        MessageBox.Show(s)
    End Sub
End Class

现在d1 and d2保存着A1 and A5中的值,无需声明太多会影响应用性能的变量