移动平均法VB

时间:2017-07-16 09:01:47

标签: vb.net

我试图在vb中制作移动平均线 i want to check the cells and set the value to text box

但结果为 all the text box has the same value

如何使我的第一个检查值(penjualan / bulan)输入第一个文本框,第二个检查(penjualan / bulan)输入第二个文本框。 这是我的代码

I/FirebaseInitProvider: FirebaseApp initialization successful

感谢。

1 个答案:

答案 0 :(得分:0)

每次cellClicked-event将所有3个文本框提升为相同的值CurrentRow.Cells(3).Value时,您都会设置。  另一个问题是您的代码将始终在文本框中设置文本。它不检查复选框是否被选中。每次单击此列中的任何单元格时,它都会更新,3个框中的文本将显示为当前所选行的值。

这里有一个解决方案。它不完美但应该有效,尽管你应该尝试理解和优化它。

Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        InitializeDgv()
    End Sub

    Private Sub InitializeDgv ()
        Dim row as String() = New String(){"2016",240}
        DataGridView1.Rows.Add(row)
        row = New String(){"2017",223}
        DataGridView1.Rows.Add(row)
        row = New String(){"2015",54}
        DataGridView1.Rows.Add(row)
    End Sub

    Private Sub DataGridView1_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged
        if e.ColumnIndex=2

            Dim checkedRows=(From dgv as DataGridViewRow in DataGridView1.Rows where dgv.Cells(2).Value=True select dgv).ToList()
            Dim controlsList As new List(of TextBox)
            controlsList.Add(TextBox1)
            controlsList.Add(TextBox2)
            controlsList.Add(TextBox3)
            for Each item in controlsList
                item.Text=String.Empty
            Next
            for i=0 to checkedRows.Count-1
                controlsList(i).Text=checkedRows.Item(i).Cells(0).Value
            Next
        End If
    End Sub
End Class