我试图在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
感谢。
答案 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