Public Class Form1
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If OpenFileDialog1.FileName = "" Then ' Если мы не выбрали файл в OpenFileDialog и не получили FileName То
            СохранитьToolStripMenuItem1.Enabled = False ' "Сохранить" будет не доступна 
        Else ' Иначе если мы выбрали файл и получили к нему путь (filename) 
            СохранитьToolStripMenuItem1.Enabled = True ' "Сохранить" будет доступна
        End If

        If TextBox1.Text = "" Then ' Если в TB1 нету текста То
            СохранитькакToolStripMenuItem1.Enabled = False ' Блокируется
        Else ' Иначе, если есть текст 
            СохранитькакToolStripMenuItem1.Enabled = True ' Разблокируется
        End If

        ' Тоже самое
        If TextBox1.Text = "" Then
            ВырезатьToolStripMenuItem1.Enabled = False
        Else
            ВырезатьToolStripMenuItem1.Enabled = True
        End If

        ' Тоже самое
        If TextBox1.Text = "" Then
            КопироватьToolStripMenuItem1.Enabled = False
        Else
            КопироватьToolStripMenuItem1.Enabled = True
        End If

        ' Тоже самое
        If TextBox1.Text = "" Then
            УдалитьToolStripMenuItem.Enabled = False
        Else
            УдалитьToolStripMenuItem.Enabled = True
        End If

        ' Если текста нету То В label3 текст стирается
        If TextBox1.Text = "" Then Label3.Text = ""
        ' На случай если выбрали цвет фона черный, шрифт будет белый
        If TextBox1.BackColor = Color.Black Then TextBox1.ForeColor = Color.White
        ' Если нет текста То Модификации не будет
        If TextBox1.Text = "" Then TextBox1.Modified = False



    End Sub


    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        ' Модификация текста(изменение)
        If TextBox1.Modified = False Then Exit Sub
        ' Если текст модицицирован, то при закрытии его выдает:Сообщение
        Dim MBox As DialogResult = MessageBox.Show(
      "Текст был изменен." & vbCrLf & "Сохранить изменения?",
           "Lx2Pad", MessageBoxButtons.YesNoCancel,
                                    MessageBoxIcon.Exclamation)
        ' YES NO CANCEL
        If MBox = DialogResult.No Then Exit Sub ' Выходит из программы

        If MBox = DialogResult.Cancel Then e.Cancel = MBox ' Отмена 
        ' Если мы открыли текстовый файл, тогда сработает 1 , если мы не открывали текстовый файл и тупо писали текст , то при кнопке  да , выйдет диалог сохранения 2
        If MBox = DialogResult.Yes Then
            My.Computer.FileSystem.WriteAllText(Label1.Text, TextBox1.Text, True) ' 1
        Else
            If SaveFileDialog1.ShowDialog() = DialogResult.Cancel Then Exit Sub ' 2
            Dim save As String = SaveFileDialog1.FileName
            Dim saver As New System.IO.StreamWriter(save)
            saver.Write(TextBox1.Text)
            saver.Close()
        End If ' - DialogResult.Yes

        Exit Sub
    End Sub
    Private Sub СоздатьToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles СоздатьToolStripMenuItem1.Click
        ' Модификация текста(изменение)
        If TextBox1.Modified = False Then Exit Sub
        ' Если текст модицицирован, то при закрытии его выдает:Сообщение
        Dim MBox As DialogResult = MessageBox.Show(
      "Текст был изменен." & vbCrLf & "Сохранить изменения?",
           "Lx2Pad", MessageBoxButtons.YesNoCancel,
                                    MessageBoxIcon.Exclamation)
        ' YES NO CANCEL

        ' Смысл тот же, что и при закрытии формы
        If MBox = DialogResult.No Then TextBox1.Text = ""

        If MBox = DialogResult.Cancel Then MBox = DialogResult.Cancel

        If MBox = DialogResult.Yes Then
            If SaveFileDialog1.ShowDialog() = DialogResult.Cancel Then Exit Sub
            Dim save As String = SaveFileDialog1.FileName
            Dim saver As New System.IO.StreamWriter(save)
            saver.Write(TextBox1.Text)
            saver.Close()
            TextBox1.Text = ""

        End If ' - DialogResult.Yes
    End Sub

    Private Sub ОткрытьToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ОткрытьToolStripMenuItem1.Click

        OpenFileDialog1.CheckPathExists = True ' Неверная папка
        OpenFileDialog1.CheckFileExists = True ' Обезпасим себя от ошибки, неверного ввода пути
        If OpenFileDialog1.ShowDialog() = DialogResult.Cancel Then Exit Sub : НастроитьСтраницуToolStripMenuItem.Enabled = False ' Если при выборе файла нажали отмена, то без ошибки выйдет из диалога.
        Dim file As String = OpenFileDialog1.FileName ' Получаем путь в переменную
        Dim reader As New System.IO.StreamReader(file, System.Text.Encoding.GetEncoding(1251)) ' Считываем файл в переменую с кидировкой 1251
        TextBox1.Text = reader.ReadToEnd ' Получаем текст из переменной сначало до конца 
        Label1.Text = file ' Получаем путь в label1
        Dim files As String = OpenFileDialog1.SafeFileName ' Название файла и расширение
        Me.Text = (files & " " & "-" & " " & "Lx2Pad") ' При открытии файла меняется название формы. Добавляется назв.файла и расш
        НастроитьСтраницуToolStripMenuItem.Enabled = True ' доступен
        reader.Close() '  считывание файла заканчивается
    End Sub

    Private Sub СохранитьToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles СохранитьToolStripMenuItem1.Click
        My.Computer.FileSystem.WriteAllText(Label1.Text, TextBox1.Text, True) ' Из label1 получаем путь открытого файла и затем сохроняем
    End Sub

    Private Sub СохранитькакToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles СохранитькакToolStripMenuItem1.Click
        ' Диалог сохранения
        If SaveFileDialog1.ShowDialog() = DialogResult.Cancel Then Exit Sub
        Dim save As String = SaveFileDialog1.FileName
        Dim saver As New System.IO.StreamWriter(save)
        saver.Write(TextBox1.Text)
        saver.Close()
    End Sub

    Private Sub НастройкиToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles НастройкиToolStripMenuItem1.Click
        ' Играем с настройками
        If НастройкиToolStripMenuItem1.Checked = True Then StatusStrip1.Visible = True
        TextBox1.WordWrap = True
        If НастройкиToolStripMenuItem1.Checked = False Then StatusStrip1.Visible = False
        TextBox1.WordWrap = False
    End Sub

    Private Sub НастроитьСтраницуToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles НастроитьСтраницуToolStripMenuItem.Click
        ' Переоткрываем страницу
        Dim reader As New System.IO.StreamReader(Label1.Text, System.Text.Encoding.GetEncoding(1251))
        TextBox1.Text = reader.ReadToEnd
        reader.Close()
    End Sub
    Private Sub ОткрытыеToolStripMenuItem_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles ОткрытыеToolStripMenuItem.MouseEnter
        ' Какой файл открыт
        ToolStripTextBox1.Text = Label1.Text
    End Sub
    Private Sub ВыходToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ВыходToolStripMenuItem1.Click
        End ' Закрываем приложение
    End Sub
    Dim stroka As String
    Dim massa As String

    Private Sub TextBox1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseClick
        ' подсчет всего текста и Строки
        stroka = TextBox1.Lines.Length ' Сколько строк
        massa = TextBox1.SelectionStart ' Сколько букв и строк 
        Label2.Text = (massa & " : " & stroka)
    End Sub

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        ' Все также как и при клик на TextBox
        stroka = TextBox1.Lines.Length
        massa = TextBox1.SelectionStart
        Label2.Text = (massa & " : " & stroka)
        Label3.Text = "Изменён"
    End Sub

    Private Sub ВырезатьToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ВырезатьToolStripMenuItem1.Click
        TextBox1.Cut() ' Вырезать
    End Sub

    Private Sub КопироватьToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles КопироватьToolStripMenuItem1.Click
        TextBox1.Copy() ' Копировать
    End Sub

    Private Sub ВыделитьвсеToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ВыделитьвсеToolStripMenuItem1.Click
        TextBox1.SelectAll() ' Выделить все
    End Sub

    Private Sub ВставкаToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ВставкаToolStripMenuItem1.Click
        TextBox1.Paste()
    End Sub

    Private Sub УдалитьToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles УдалитьToolStripMenuItem.Click
        TextBox1.Clear()
    End Sub

    Private Sub ОтменадействияToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ОтменадействияToolStripMenuItem2.Click
        TextBox1.Undo()
        ОтменадействияToolStripMenuItem3.Enabled = True
        ОтменадействияToolStripMenuItem2.Enabled = False
    End Sub

    Private Sub ОтменадействияToolStripMenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ОтменадействияToolStripMenuItem3.Click
        TextBox1.Undo()
        ОтменадействияToolStripMenuItem2.Enabled = True
        ОтменадействияToolStripMenuItem3.Enabled = False
    End Sub
    Dim priznak As Integer = 1
    Private Sub ВверхToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ВверхToolStripMenuItem.Click
        TextBox1.Paste(TimeOfDay + " " + DateString)
    End Sub

    Private Sub ВнизToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ВнизToolStripMenuItem.Click
        TextBox1.AppendText(TimeOfDay + " " + DateString)
    End Sub

    Private Sub ОткрытьОкноToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ОткрытьОкноToolStripMenuItem.Click
        Process.Start("Lx2Pad.exe")
    End Sub

    Private Sub ПоискToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ПоискToolStripMenuItem2.Click
        search.Show()
    End Sub

    Private Sub ПоискToolStripMenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ПоискToolStripMenuItem3.Click
        Поиск.Show()
    End Sub

    Private Sub ПараметрыToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ПараметрыToolStripMenuItem1.Click
        FontDialog1.ShowApply = True ' Добавляет кнопку "Пременить"
        FontDialog1.ShowEffects = True ' Параметры подчеркивания и зачеркивания
        FontDialog1.ShowColor = True    'Предоставить возможность выбирать цвет шрифта
        If FontDialog1.ShowDialog() = DialogResult.Cancel Then Exit Sub ' Показываем диалог, если пользователь нажал отмена выходим из диалога
        'Присвоить шрифту текстового поля значение шрифта, выбранного в диалоговом окне:
        TextBox1.Font = FontDialog1.Font
        'Присвоить цвету шрифта текстового поля значение цвета шрифта, выбранного в диалоговом окне:
        TextBox1.ForeColor = FontDialog1.Color
    End Sub

    Private Sub ЦветТекстаToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ЦветТекстаToolStripMenuItem.Click
        If ColorDialog1.ShowDialog = DialogResult.Cancel Then Exit Sub ' Показываем диалог, если пользователь нажат отмена выходим из диалога
        TextBox1.ForeColor = ColorDialog1.Color ' Применяем цвет выбраный в диалоге
    End Sub

    Private Sub ЦветToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ЦветToolStripMenuItem.Click
        ColorDialog1.AllowFullOpen = True ' Собстыенный цвет
        ColorDialog1.AnyColor = True ' Основные цвета
        If ColorDialog1.ShowDialog = DialogResult.Cancel Then Exit Sub ' Показываем диалог, если пользователь нажат отмена выходим из диалога
        TextBox1.BackColor = ColorDialog1.Color ' Применяем цвет выбраный в диалоге
    End Sub

    Private Sub ТолькоЧтениеToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ТолькоЧтениеToolStripMenuItem.Click
        If ТолькоЧтениеToolStripMenuItem.Checked = True Then TextBox1.ReadOnly = True : TextBox1.BackColor = Color.White
        If ТолькоЧтениеToolStripMenuItem.Checked = False Then TextBox1.ReadOnly = False
    End Sub

    Private Sub ПоверхВсехОконToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ПоверхВсехОконToolStripMenuItem.Click
        If ПоверхВсехОконToolStripMenuItem.Checked = True Then Me.TopMost = True
        If ПоверхВсехОконToolStripMenuItem.Checked = False Then Me.TopMost = False
    End Sub

    Private Sub СтрокаСостоянияToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles СтрокаСостоянияToolStripMenuItem.Click
        If СтрокаСостоянияToolStripMenuItem.Checked = True Then StatusStrip1.Visible = False : Label1.Visible = False : Label2.Visible = False
        If СтрокаСостоянияToolStripMenuItem.Checked = False Then StatusStrip1.Visible = True : Label1.Visible = True : Label2.Visible = True
    End Sub
    Private Declare Sub keybd_event Lib "user32.dll" _
           (ByVal bVk As Byte, ByVal bScan As Byte, _
              ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
    Private Sub СкринToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles СкринToolStripMenuItem.Click
        keybd_event(44, 1, 0, 0)
        screen.Show()
    End Sub

    Private Sub ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub СвойСтильToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles СвойСтильToolStripMenuItem.Click
        If OpenFileDialog2.ShowDialog = DialogResult.Cancel Then Exit Sub
        Dim file As String = OpenFileDialog2.FileName
        MenuStrip1.BackgroundImage = Image.FromFile(file)
    End Sub

    Private Sub ОпрограммеToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ОпрограммеToolStripMenuItem1.Click
        about.Show()
    End Sub

    Private Sub ПоЦентруToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ПоЦентруToolStripMenuItem.Click
        TextBox1.TextAlign.Center.GetHashCode()
    End Sub
End Class
