Operowaniem formantem listy
Transkrypt
Operowaniem formantem listy
Microsoft Visual Basic 2008 Express Edition, r. ak. 2014/2015 Formant ListBox. Instrukcja cyklu For ... Next. Pasek menu formularza Projekt formularza po lewej, po prawej – wykonane obliczenie średniej i włączone sortowanie): Struktura menu: Kod w module formularza Public Class frmLista ' ' Formant listy, ' i instrukcja cyklu. Rok ak. 2014/2015 ' Private Sub mnuZakoncz_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles mnuZakoncz.Click End End Sub Private Sub WyczyscWynik() ' txtWynik.Text = "" lblTytul.Text = "" End Sub Private Sub mnuDodaj_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles mnuDodaj.Click ' lstLista.Items.Add(txtNowy.Text) Call WyczyscWynik() End Sub Private Sub mnuUsun_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles mnuUsun.Click ' Dim strKom, strTyt As String ' If lstLista.SelectedIndex <> -1 Then lstLista.Items.RemoveAt(lstLista.SelectedIndex) Call WyczyscWynik() Else strKom = "Nie zaznaczono elementu do usunięcia" strTyt = "Usuwanie elementu listy" MessageBox.Show(strKom, strTyt, _ MessageBoxButtons.OK, MessageBoxIcon.Information) End If End Sub Private Sub lstLista_SelectedIndexChanged(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles lstLista.SelectedIndexChanged ' If lstLista.SelectedIndex >= 0 Then txtZaznaczony.Text = lstLista.SelectedItem Else txtZaznaczony.Text = "" End If End Sub Private Sub mnuWyczysc_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles mnuWyczysc.Click ' Call WyczyscWynik() txtNowy.Clear() txtZaznaczony.Clear() lstLista.Items.Clear() End Sub Private Sub mnuSortuj_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles mnuSortuj.Click ' lstLista.Sorted = mnuSortuj.Checked If lstLista.Sorted Then lstLista.BackColor = Color.LightBlue Else lstLista.BackColor = Color.White End If End Sub Private Sub mnuMax_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles mnuMax.Click ' Dim strMax As String Dim i As Integer Dim strKom, strTyt As String ' If lstLista.Items.Count > 0 Then strMax = lstLista.Items(0) ' zakładamy, że pierwszy element jest największy For i = 1 To lstLista.Items.Count - 1 ' badanie listy od DRUGIEGO elementu If lstLista.Items(i) > strMax Then strMax = lstLista.Items(i) End If Next lblTytul.Text = "Największy element listy" txtWynik.Text = strMax Else strKom = "Lista jest pusta" strTyt = "Brak danych" MessageBox.Show(strKom, strTyt, _ MessageBoxButtons.OK, MessageBoxIcon.Information) End If End Sub Private Sub mnuSrednia_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles mnuSrednia.Click ' Dim sngSuma As Single, intLNum As Integer Dim i As Integer Dim strKom, strTyt As String ' Try intLNum = 0 sngSuma = 0.0 For i = 0 To lstLista.Items.Count – 1 ' przeszukujemy listę od PIERWSZEGO If IsNumeric(lstLista.Items(i)) Then ' elementu intLNum = intLNum + 1 sngSuma = sngSuma + CSng(lstLista.Items(i)) End If Next If intLNum > 0 Then lblTytul.Text = "Wartość średnia elementów numerycznych:" txtWynik.Text = (sngSuma / intLNum).ToString Else strKom = "Na liście brak elementów numerycznych" strTyt = "Obliczanie wartości średniej" MessageBox.Show(strKom, strTyt, _ MessageBoxButtons.OK, MessageBoxIcon.Information) End If Catch ex As Exception strKom = ex.Message strTyt = "Obliczanie wartości średniej" MessageBox.Show(strKom, strTyt, _ MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub End Class