2017-04-11 15 views
0
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles btnAdd.Click 

    If txtCode.Text = "" Or txtName.Text = "" Or txtUnit.Text = "" Or txtPrice.Text = "" Then 
     MsgBox("Please fill in all fields") 
    Else 

     Dim str(3) As String 
     Dim itm As ListViewItem 


     str(0) = LSet(txtName.Text, 8) 
     str(1) = LSet(txtCode.Text, 3) 
     str(2) = LSet(txtUnit.Text, 6) 
     str(3) = LSet(txtPrice.Text, 20) 

     itm = New ListViewItem(str) 

     ListView1.Items.Add(itm) 

     lblTotalItems.Text = ListView1.Items.Count 


     txtCode.Text = "" 
     txtName.Text = "" 
     txtUnit.Text = "" 
     txtPrice.Text = "" 
    End If 
End Sub 

私は現在、グローバル変数に多くのコードを含むリストビューのためにこのコードを持っています。私は1つの列を追加して合計テキストボックスに配置したいと思っています。それらを追加するが、私はどのようにわからない。特定の列の合計をリストビューに追加してテキストボックスに追加するにはどうすればよいですか?

ここ形 enter image description here

+0

ビジネスロジックはUIから実行する必要があります。あなたの数字は、テキストボックスに文字列として入力され、次にリストビューに入れられ、文字列から数値に変換されます。すべてがUI上にあります。入力時に番号の検証を処理する場合(いずれかの方法で行う必要があります)、オブジェクトに格納してUIに結果を表示する*ことができます。 – djv

答えて

0

を持つ)だけForm.Load(上でそれを初期化しDataGridViewの を使用ListViewコントロールよりも簡単なロットの画像です:次に

DataGridView1.Columns.Add("Name", "Name") 
DataGridView1.Columns.Add("Code", "Code") 
DataGridView1.Columns.Add("Unit", "Unit") 
DataGridView1.Columns.Add("Price", "Price") 
DataGridView1.AllowUserToAddRows = False 

は、追加ボタン:

If txtCode.Text = "" Or txtName.Text = "" Or txtUnit.Text = "" Or txtPrice.Text = "" Then 
    MsgBox("Please fill in all fields") 
Else 
    DataGridView1.Rows.Add(txtName.Text, txtCode.Text, txtUnit.Value, Decimal.Parse(txtPrice.Text, System.Globalization.CultureInfo.InvariantCulture) * txtUnit.Value) 
    DataGridView1.Refresh() 
End If 

ここで私は価格列=単位時間にあなたが入力した価格をしました。 私はまた、部分的に小数を扱っていますが、その価格は2.00とその後の総ボタンのない2

でチェックする必要があります:

Dim MyTotal As Decimal = 0.00 
'For each row in the gridd 
For Each row As DataGridViewRow In DataGridView1.Rows 
    'invcrement total with column 3 equal to the price (index start = 0) 
    MyTotal = MyTotal + Decimal.Parse(row.Cells(3).Value, System.Globalization.CultureInfo.InvariantCulture) 
Next 
txtTotal.Text = MyTotal 

は、私はあなたが残り

1

を把握せていただきますここでは、使用できるループのタイプの例を示します。

Const col As Integer = 3 'this adds the price column 
    Dim total As Integer = 0 
    Dim lvsi As ListViewSubItem 

    For i As Integer = 0 To ListView1.Items.Count - 1 
     lvsi = ListView1.Items(i).SubItems(col) 
     total += Integer.Parse(lvsi.Text) 
    Next 
関連する問題