Zdravím. V aplikaci jsou čtyři tlačítka, které obsluhují 2xListView (věrné kopie) po spuštění aplikace dojde k počátečnímu naplnění
Sub inicializace()
For x1 As Integer = 1 To 5
Dim a As New ListViewItem()
a.Text = 1
a.SubItems.Add(0)
a.SubItems.Add("")
a.SubItems.Add(0)
a.SubItems.Add("")
Form1.ListView2.Items.Add(a)
Next
For x2 As Integer = 1 To 5
Dim a1 As New ListViewItem()
a1.Text = 1
a1.SubItems.Add(0)
a1.SubItems.Add("")
a1.SubItems.Add(0)
a1.SubItems.Add("")
Form1.ListView3.Items.Add(a1)
Next
End Sub
Kod pro čtyři tlačítka
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If LabelPocetStanic.Text = 1 Then Exit Sub
' Snížení počtu stanic o 1
Dim x As Integer = CInt(LabelPocetStanic.Text)
LabelPocetStanic.Text = x - 1
' Výpočet čísla indexu poslední operace, poslední stanice
Dim IndxPoslOp As Integer
IndxPoslOp = (LabelPocetStanic.Text * LabelOperacinastanici.Text)
'Vymazání všeho ostatního
For x1 As Integer = ListView2.Items.Count To IndxPoslOp + 1 Step -1
ListView2.Items.RemoveAt(x1 - 1)
ListView3.Items.RemoveAt(x1 - 1)
Next
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
' Zvýšení počtu stanic o 1
If LabelPocetStanic.Text = 30 Then Exit Sub
Dim x As Integer = CInt(LabelPocetStanic.Text)
LabelPocetStanic.Text = x + 1
' Vložení příslušného počtu řádků
For x1 As Integer = 1 To CInt(LabelOperacinastanici.Text)
Dim x2 As New ListViewItem()
Dim x3 As New ListViewItem()
x2.Text = x + 1
x2.SubItems.Add(0)
x2.SubItems.Add("")
x2.SubItems.Add(0)
x2.SubItems.Add("")
ListView2.Items.Add(x2)
x3.Text = x + 1
x3.SubItems.Add(0)
x3.SubItems.Add("")
x3.SubItems.Add(0)
x3.SubItems.Add("")
ListView3.Items.Add(x3)
Next
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
' Zvýšení počtu operací na stanici o jedna
If LabelOperacinastanici.Text = 30 Then Exit Sub
Dim x As Integer = CInt(LabelOperacinastanici.Text)
LabelOperacinastanici.Text = x + 1
For x1 As Integer = 1 To CInt(LabelPocetStanic.Text)
Dim x2 As New ListViewItem()
Dim x3 As New ListViewItem()
x2.Text = x1
x2.SubItems.Add(0)
x2.SubItems.Add("")
x2.SubItems.Add(0)
x2.SubItems.Add("")
x3.Text = x1
ListView2.Items.Insert((x1 * LabelOperacinastanici.Text) - 1, x2)
x3.SubItems.Add(0)
x3.SubItems.Add("")
x3.SubItems.Add(0)
x3.SubItems.Add("")
ListView3.Items.Insert((x1 * LabelOperacinastanici.Text) - 1, x3)
Next
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
' Snížení počtu operací na stanici o jedna
If LabelOperacinastanici.Text = 5 Then Exit Sub
Dim x As Integer = CInt(LabelOperacinastanici.Text)
LabelOperacinastanici.Text = x - 1
'Vymazání řádků
For x1 As Integer = LabelPocetStanic.Text To 1 Step -1
ListView2.Items.RemoveAt((x1 * LabelOperacinastanici.Text) - 1)
ListView3.Items.RemoveAt((x1 * LabelOperacinastanici.Text) - 1)
Next
End Sub
Pokud mám už ale počet stanic vysoký a zároveň počet operací na stanici vysoký, tak když pak klikám "mohutně" na tlačítka ve smyslu rychle změnit na jiný počet, tak se mi stane, že pak v prvním sloupečku mám čísla dosti přeházená (popsat je to složitější, lepší je spíš vyzkoušet) Teď, když na tom přemýšlím, tak mě napadá jedna věc. Po kliknutí nastavit tlačítku Enabled = false a na konci cyklu ho zase zapnout: enabled = true Každopádně otázka je zda to jde i jinak? Do budoucna.
|