15 февр. 2015 г.

VB .Net: Создание своего блокнота (часть 1)


В статье будет рассмотрено, как создать свой небольшой блокнот на VB Net. Статья ожидается большой, поэтому будет разбита на части. Вот список того, что я собираюсь рассмотреть:
  • как создать проект в Visual Studio (часть 1);
  • как открыть и сохранить текстовый файл или RTF файл;
  • как использовать различную кодировку при открытии и сохранении файла;
  • как сохранять текст в кодировке UTF8 без BOM;
  • как автоматически определять кодировку при открытии текстового файла;
Для отбора материалов только по этой статье, в блоге под постом можно нажать на ярлык "Notepad", так покажутся статьи этого цикла.
Отбор только частей этой статьи


Расскажу историю, как я надумал сделать свой блокнот, а попутно и то, что я для этого делал.
Вообще-то, сначала это был калькулятор, но только потом он стал блокнотом, хотя калькулятор в нем все же остался, но это уже совсем другая история :)


Как создать проект в Visual Studio

Итак, я решил создать блокнот. Это было начало моей практики программирования, у меня была Visual Studio 2013 (далее VS) и желание развиваться, писать код, создать что-то свое.
Я вошел в VS, нажал Файл -> Создать -> Проект -> Приложение Windows Forms -> OK (Рис.1).
Рис.1. Создание нового проекта в Visual Studio
Конструктор - молодец, сам создал мне форму. Но, что делать дальше, было непонятно. Я знал, что мне нужна Панель элементов, но не видел ее. Чтобы открылась Панель элементов нужно нажать в главном меню: Вид - Панель элементов.
Слева открылась панелька и я перетащил на форму 2 кнопки (Button), RichTextBox, OpenFileDialog и SaveFileDialog (Рис. 2). Я думаю, названия элементов говорят сами за себя:

  • RichTextBox (далее RTB) - текстовое поле, но не обычное, разницу я опишу ниже;
  • OpenFileDialog  (далее OFD) - диалоговый файл для открытия файла, возвращает путь к файлу, который открывается;
  • SaveFileDialog (далее SFD) - тоже самое, что OFD, только для сохранения файла. 
Рис.2. Добавление элементов управления на форму

Можно было вместо RTB добавить другой элемент управления, TextBox, он проще. Разница между ними в том, что в RTB можно раскрашивать слова или символы разными цветами, делать текст жирным, подчеркнутым, курсивом, изменять масштаб просмотра, вставлять изображения, изменять выравнивание текста. Короче говоря, при желании можно сделать свой урезанный Word или точную копию программы WordPad, что идет с Windows.

Насчет OFD и SFD уверен, что вы видели их, как минимум тысячу раз и особого внимания на них заострять не стоит. Дальше будет показано, как с ними работать программно (в коде).

Кстати, все эти элементы можно было не добавлять на форму вручную, не искать Панель управления и легких путей, а создать эти элементы и разместить их программно, написав соответствующий код. Но так, как сделал я, проще, потому что задавать ширину, координаты элементов управления гораздо нагляднее через конструктор, чем через код. Программно можно создавать элементы управления в качестве тренировки или ради повышения своего ЧСВ. Мое мнение таково, если можно сэкономить время, то нужно его сэкономить.

Остался еще один штрих - добавить фильтры для OFD и SFD, чтобы можно было открывать или сохранять конкретные типы файлов (с соответствующим расширением).
Для этого я нажимаю на OpenFileDialog1 под моей формой и в свойстве Filter пишу вот такую строку:
Текстовые файлы (*.txt)|*.txt|RTF-файлы (*.rtf)|*.rtf|Все файлы|*.*
Да, чтобы вызвать окно свойств, нужно нажать F4 или Alt+Enter, в крайнем случае, правой кнопкой по элементу -> Свойства.
Приведенная строка означает, что можно будет открывать текстовые файлы, файлы RTF и без фильтра (все файлы).

Чтобы посмотреть, какая у меня получилась программа и что она делает, я нажимаю F5 или кнопку Запуск (прямо над формой). Запустил, поклацал по кнопкам, потаскал форму за края. Ну что за программа? Кнопки никак не реагируют на клики, а угол формы не хочет за собой тащить RTB. 
Чтобы RTB следовал за формой, в его свойство Anchor я поставил еще 2 привязки (Рис. 3).
Рис.3. Установка свойства Anchor

С кнопками все немного сложнее, это та граница, где начинается самое интересное - написание кода. Чтобы кнопки реагировали, в обработчики событий кнопок (событие Click) я и добавлю код.
Для этого я, в режиме Конструктора, щелкнул по кнопке 2 раза. VS безо всяких вопросов перешла в модуль формы и даже поставила курсор в нужное место, как бы намекая, что пора бы уже что-то написать, вот так, прямо сдесь и сейчас (Рис.4).
Рис.4. Модуль формы. Обработчик события Click кнопки butOpen
В следующих статьях читайте:
  • как открыть текстовый файл или RTF файл (часть 2);

Комментариев нет:

Отправить комментарий

Спрашивайте, критикуйте, оставьте свое мнение