2014-04-12 54 views
0

我有我的表單上的文本框,我想那裏的文本發送到數據網格。我寫道:發送文本從文本框到數據網格

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

    Dim itemName As String = txtItem.Text 
    Dim qty As Double = CDbl(txtQTY.Text) 
    Dim price As Double = CDbl(txtPrice.Text) 
    Dim Total As Double = price * qty 

    txtTotal.Text = Convert.ToString(Total) 

    Dim row As Integer = grdNewInvoice.Rows.Count 

    Dim data As TextBox() = New TextBox() {txtItem, txtQTY, txtPrice, txtTotal} 
    grdNewInvoice.Rows.Add() 

    For i As Integer = 0 To data.Length - 1 
     grdNewInvoice(i, row).Value = data(0) 

    Next 


End Sub 

但我得到我的DataGrid行如下:System.Windows.Forms.TextBox, Text: [文本字符串]

我試着下面的代碼,以及確保有沒有錯,我的設置我的數據網格:

'grdNewInvoice.Rows(0).Cells(0).Value = itemName 
    'grdNewInvoice.Rows(0).Cells(1).Value = qty 
    'grdNewInvoice.Rows(0).Cells(2).Value = price 
    'grdNewInvoice.Rows(0).Cells(3).Value = Total 

這工作的罰款和文本中去了預期,但因爲我會寫多行的數據網格,我將需要使用一個循環。

我在這裏做錯了什麼?

回答

1

一種方法是使用字符串數組列表。

Dim row As Integer = grdNewInvoice.Rows.Count 

Dim data As New List(Of String()) 
data.Add({txtItem.Text, txtQTY.Text, txtPrice.Text, txtTotal.Text}) 
data.Add({"Item2", "qtr2", "price2", "total2"}) 
data.Add({"Item3", "qty3", "price3", "total3"}) 

For i As Integer = 0 To data.Count - 1 
    grdNewInvoice.Rows.Add(data(i)) 
Next 
+0

謝謝,您以前刪除的答案也是偉大的工作。 –

+0

我刪除了它,因爲您聲明要使用循環進行添加。 – Arman

相關問題