[Предыдущая страница]   [Страница учителя Усольцева Б.М.]         [Сайт Равнецкой школы]

Последний вариант исходного код программы «Восьмиклассник»

 Код программы скопирован из встроенного текстового редактора Visual Studio 2005 и сохраняет все особенности его первоначального форматирования, в частности служебные слова Visual Basic выделены синим цветом.

Для большей наглядности автор разделил процедуры одинарной горизонтальной чертой, а части кода относящиеся к разным формам толстой синей линией. Кроме того, к исходной редакции добавлены краткие комментарии красного цвета, которые распологаются на участках выделенных желтым цветом

 Public Class Form1


     Private Sub AllButtons(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPlus.Click, _

    btnMinus.Click, btnMult.Click, btnDiside.Click, btExp.Click, btFromMem.Click, btnComma.Click, _

    btnSign.Click, btSqr.Click, btSquareEq.Click, btToMem.Click, _

    btUp.Click, btRoot.Click, bt0.Click, bt1.Click, bt2.Click, bt3.Click, _

    bt4.Click, bt5.Click, bt6.Click, bt7.Click, bt8.Click, bt9.Click, btDel1.Click, btDel2.Click, btDel3.Click, btSwap.Click

Эта ключевая процедура программы обрабатывает клики на всех кнопках. Для распознавания кнопки получившей клик используется свойство tag, которое предназначено для хранения любых дополнительных данных

 

            Dim objAllButtons As Button

            objAllButtons = sender

 

            Dim A As String

 

        Select Case objAllButtons.Tag

            Case "plus"

                txtRez.Text = CSng(txtRez.Text) + CSng(txtSecondNumber.Text)

                txtSecondNumber.Text = "0"

            Case "minus"

                txtRez.Text = -CSng(txtRez.Text) + CSng(txtSecondNumber.Text)

                txtSecondNumber.Text = "0"

            Case "mult"

                txtRez.Text = CSng(txtRez.Text) * CSng(txtSecondNumber.Text)

                txtSecondNumber.Text = "0"

            Case "divide"

                If txtRez.Text = "0" Then

                    GoTo DivZero

                Else

                    txtRez.Text = CSng(txtSecondNumber.Text) / CSng(txtRez.Text)

                    txtSecondNumber.Text = "0"

                End If

            Case "sqr"

                txtRez.Text = CSng(txtRez.Text) ^ 2

            Case "exp"

                txtRez.Text = CSng(txtSecondNumber.Text) ^ CSng(txtRez.Text)

                txtSecondNumber.Text = 0

            Case "tomem"

                txtToMemory.Text = txtRez.Text

            Case "frommem"

                txtSecondNumber.Text = txtRez.Text

                txtRez.Text = txtToMemory.Text

            Case "del1"

                txtToMemory.Text = "0"

            Case "del2"

                txtSecondNumber.Text = "0"

            Case "del3"

                txtRez.Text = "0"

            Case "swap"

                A = txtRez.Text

                txtRez.Text = txtSecondNumber.Text

                txtSecondNumber.Text = A

            Case "squareeq"

                Form2.Show()

            Case "sign"

                txtRez.Text = CSng(txtRez.Text) * (-1)

            Case "comma"

                If (txtRez.Text).IndexOf(",") = -1 Then

                    txtRez.Text = txtRez.Text & ","

                Else

                    txtRez.Text = txtRez.Text

                End If

            Case "Root"

                If CSng(txtRez.Text) < 0 Then

                    GoTo RootNegative

                Else

                    txtRez.Text = CSng(Math.Sqrt(CSng(txtRez.Text)))

                End If

            Case "up"

                txtSecondNumber.Text = txtRez.Text

                txtRez.Text = "0"

            Case Else

                If txtRez.Text = "0" Then

                    txtRez.Text = objAllButtons.Text

                Else

                    txtRez.Text = txtRez.Text & objAllButtons.Text

                End If

        End Select

        Exit Sub

DivZero:

        MsgBox("Делить на ноль нельзя", MsgBoxStyle.Information, "Ошибка")

        Exit Sub

RootNegative: MsgBox("Извлечение корня из отрицательного числа невозможно", MsgBoxStyle.Information, "Ошибка")

    End Sub


     Private Sub tbr1_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles tbr1.ValueChanged

' Управление прозрачностью, через слайдер tbr1. Чтобы форма не исчезла полностью, предел прозрачности установлен в 40%.

                Me.Opacity = (14 - tbr1.Value) / 10

    End Sub


     Private Sub ColorOn(ByVal sender As Object, ByVal e As System.EventArgs) Handles bt0.MouseEnter, _

            bt1.MouseEnter, bt2.MouseEnter, bt3.MouseEnter, bt4.MouseEnter, bt5.MouseEnter, bt6.MouseEnter, _

            bt7.MouseEnter, bt8.MouseEnter, bt9.MouseEnter, btExp.MouseEnter, btFromMem.MouseEnter, btnComma.MouseEnter, _

            btnDiside.MouseEnter, btnMinus.MouseEnter, btnMult.MouseEnter, btnPlus.MouseEnter, btnSign.MouseEnter, _

            btSqr.MouseEnter, btSquareEq.MouseEnter, btToMem.MouseEnter, btUp.MouseEnter

' При появлении курсора над любой кнопкой она окрашивается в жёлтый цвет

        Dim objColorOn As Button

        objColorOn = sender

 

        objColorOn.BackColor = Color.Yellow

    End Sub


     Private Sub ColorOut(ByVal sender As Object, ByVal e As System.EventArgs) Handles bt0.MouseLeave, bt1.MouseLeave, _

        bt2.MouseLeave, bt3.MouseLeave, bt4.MouseLeave, bt5.MouseLeave, bt6.MouseLeave, bt7.MouseLeave, bt8.MouseLeave, bt9.MouseLeave, _

        btExp.MouseLeave, btFromMem.MouseLeave, btnComma.MouseLeave, btnDiside.MouseLeave, btnMinus.MouseLeave, btnMult.MouseLeave, _

        btnPlus.MouseLeave, btnSign.MouseLeave, btSqr.MouseLeave, btSquareEq.MouseLeave, btToMem.MouseLeave, btUp.MouseLeave

'Если курсор мыши покидает кнопку, она восстанавливает первоначальный цвет

        Dim objColorOn As Button

        objColorOn = sender

 

        objColorOn.BackColor = Color.FromArgb(230, 251, 111)

    End Sub


    Private Sub ЗакрытьToolStripMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ЗакрытьToolStripMenuItem.Click

'Пункт «Закрыть» в меню «Файл».

End

    End Sub


    Private Sub ВставитьToolStripMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ВставитьToolStripMenuItem.Click

'Получение значения из буфера обмена

txtRez.Text = (My.Computer.Clipboard.GetText())

    End Sub


     Private Sub КопироватьToolStripMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles КопироватьToolStripMenuItem.Click

'Копирование в буфер

        Clipboard.SetText(txtRez.Text)

    End Sub


        Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

'Определены тексты всплывающих подсказок и цвет контролов

        ToolTip1.SetToolTip(btnPlus, "Складывает A и B")

        ToolTip1.SetToolTip(btnMinus, "Из В вычитает А")

        ToolTip1.SetToolTip(btnMult, "Перемножает A и B")

        ToolTip1.SetToolTip(btExp, "Возведение в степень, А - основание, В - показатель")

        ToolTip1.SetToolTip(btUp, "Ввод числа, сдвигает число А вверх в окно В")

        ToolTip1.SetToolTip(btRoot, "Извлечение квадратного корня")

        ToolTip1.SetToolTip(btSquareEq, "Переход к решению квадратных уравнений")

        ToolTip1.SetToolTip(btToMem, "Запись в память числа А")

        ToolTip1.SetToolTip(btFromMem, "Сдвиг А в В с возвратом в А числа из памяти,")

        ToolTip1.SetToolTip(btSqr, "Возведение в квадрат")

        ToolTip1.SetToolTip(btnDiside, "Делит В на А")

        ToolTip1.SetToolTip(tbr1, "Изменение прозрачности фона")      

        bt0.BackColor = Color.FromArgb(230, 251, 111)

        bt1.BackColor = Color.FromArgb(230, 251, 111)

        bt2.BackColor = Color.FromArgb(230, 251, 111)

        bt3.BackColor = Color.FromArgb(230, 251, 111)

        bt4.BackColor = Color.FromArgb(230, 251, 111)

        bt5.BackColor = Color.FromArgb(230, 251, 111)

        bt6.BackColor = Color.FromArgb(230, 251, 111)

        bt7.BackColor = Color.FromArgb(230, 251, 111)

        bt8.BackColor = Color.FromArgb(230, 251, 111)

        bt9.BackColor = Color.FromArgb(230, 251, 111)       

        btExp.BackColor = Color.FromArgb(230, 251, 111)

        btFromMem.BackColor = Color.FromArgb(230, 251, 111)

        btnComma.BackColor = Color.FromArgb(230, 251, 111)

        btnDiside.BackColor = Color.FromArgb(230, 251, 111)

        btnMinus.BackColor = Color.FromArgb(230, 251, 111)

        btnMult.BackColor = Color.FromArgb(230, 251, 111)

        btnPlus.BackColor = Color.FromArgb(230, 251, 111)

        btnSign.BackColor = Color.FromArgb(230, 251, 111)

        btRoot.BackColor = Color.FromArgb(230, 251, 111)

        btSqr.BackColor = Color.FromArgb(230, 251, 111)

        btSquareEq.BackColor = Color.FromArgb(230, 251, 111)

        btSwap.BackColor = Color.FromArgb(230, 251, 111)

        btToMem.BackColor = Color.FromArgb(230, 251, 111)

        btUp.BackColor = Color.FromArgb(230, 251, 111)

        СправкаToolStripMenuItem.Enabled = False

    End Sub


       Private Sub СправкаToolStripMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles СправкаToolStripMenuItem.Click

        Help.ShowHelp(Me, "helps.chm")

    End Sub


     Private Sub ССайтаРазроботчиковToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ССайтаРазроботчиковToolStripMenuItem.Click

        Form3.Show()

    End Sub


 End Class 

На рисунке выше даны названия контролов, использованных при написании кода Form1.


 Public Class Form2


     Private F As Byte

    Private Sub btOK_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btOK.Click

'Решается квадратное уравнение

        Dim A, B, C, D As Single

        If IsNumeric(txA.Text) = False Then GoTo drt

        If IsNumeric(txC.Text) = False Then GoTo drt

        If IsNumeric(txB.Text) = False Then GoTo drt

        A = CSng(txA.Text)

        B = CSng(txB.Text)

        C = CSng(txC.Text)

        D = B ^ 2 - 4 * A * C

        txD.Text = "D=" & D

        If D < 0 Then

            txRoot1.Text = "Корней нет"

            txRoot2.Text = txRoot1.Text

        Else

            txRoot1.Text = (-B + Math.Sqrt(D)) / (2 * A)

            txRoot2.Text = (-B - Math.Sqrt(D)) / (2 * A)

        End If

        txA.Focus()

        Exit Sub

drt:

        MsgBox("Введите числа", MsgBoxStyle.Critical, "Ошибка")

    End Sub


      Private Sub TrackBar1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TrackBar1.MouseUp

'При отпускании курсора мыши с ползунка слайдера происходит круговой переход фокуса с одного текстового окна на другое.

        Select Case F

            Case 0

                txB.Focus() : F = 1

            Case 1

                txC.Focus() : F = 2

            Case 2

                txA.Focus() : F = 0

        End Select

    End Sub


     Private Sub Form2_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated

'При активации формы фокус получает окно txA.

        txA.Focus()

    End Sub


     Private Sub TrackBar1_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TrackBar1.ValueChanged

'При перемещении ползунка слайдера приобретаемое значение записывается в окно имеющее фокус

        Select Case F

            Case 0

                txA.Text = TrackBar1.Value

            Case 1

                txB.Text = TrackBar1.Value

            Case 2

                txC.Text = TrackBar1.Value

        End Select

    End Sub


      Private Sub ЗакрытьToolStripMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ЗакрытьToolStripMenuItem.Click

        Me.Hide()

    End Sub


     Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        ToolTip2.SetToolTip(btOK, "Решение квадратного уравнения")

        ToolTip2.SetToolTip(TrackBar1, "Ввод чисел")

    End Sub


   End Class

На рисунке выше названия контролов Form2.


 Public Class Form3


    Private Sub Form3_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

'При загрузке формы 3 с указанного адреса Интернета считывается файл help1.htm

        btSadykHelp.Enabled = False

        AxWebBrowser1.Navigate("http://tutor-ub.narod.ru/sadykov/help1.htm")

    End Sub


     Private Sub btTutorUB_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btTutorUB.Click

'Переход на новый адрес. Форме устанавливается размер во весь экран и одновременно увеличиваются размеры окна браузера

        Me.WindowState = FormWindowState.Maximized

        AxWebBrowser1.Width = 800

        AxWebBrowser1.Height = 600

        AxWebBrowser1.Navigate("http://tutor-ub.narod.ru/")

        btTutorUB.Enabled = False

        btSadykHelp.Enabled = True

    End Sub


     Private Sub btSadykHelp_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btSadykHelp.Click

'При переходе на новый адрес уменьшаются размеры формы и окна браузера.

        Me.WindowState = FormWindowState.Normal

        Me.Width = 463

        Me.Height = 363

        AxWebBrowser1.Height = 288

        AxWebBrowser1.Width = 437

        AxWebBrowser1.Navigate("http://tutor-ub.narod.ru/sadykov/help1.htm")

        btTutorUB.Enabled = True

        btSadykHelp.Enabled = False

    End Sub


 End Class


[Предыдущая страница]   [Страница учителя Усольцева Б.М.]         [Сайт Равнецкой школы]

Сайт управляется системой uCoz