- •1. Вводная часть
- •2. Знакомство со средой разработки на примере создания простого консольного приложения
- •3. Модификация консольного приложения
- •4. Публикация
- •5. О приложении к Лабораторной работе № 1
- •Лабораторная работа № 2: Создание простого приложения Windows Forms
- •Создание простого приложения Windows Forms
- •Модификация приложения Windows Forms
- •Завершающая часть
- •2. Создание простого приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Завершающая часть
- •5. О приложении к Лабораторной работе № 2
- •3. Лабораторная работа № 3: Windows Forms и использование некоторых элементов управления Лабораторная работа № 3: Windows Forms и использование некоторых элементов управления
- •Вводная часть
- •О приложении к Лабораторной работе № 3
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: элемент управления MenuStrip
- •5. Модификация приложения Windows Forms: элемент управления Button
- •6. Модификация приложения Windows Forms: элемент управления ToolTip
- •7. Модификация приложения Windows Forms: элемент управления ComboBox
- •8. Модификация приложения Windows Forms: элемент управления WebBrowser
- •9. Модификация приложения Windows Forms: добавляем исходный код
- •10. Завершающая часть
- •11. О приложение к Лабораторной работе № 3
- •4. Лабораторная работа № 4: Windows Forms — работа с формами Лабораторная работа № 4: Windows Forms — работа с формами
- •Вводная часть
- •О приложении к Лабораторной работе № 4
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: добавление новой формы
- •5. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через прямой доступ к элементу формы
- •6. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через передачу метода в конструктор формы
- •7. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через класс делегата
- •8. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через свойства
- •9. Завершающая часть
- •10. О приложении к Лабораторной работе № 4
- •5. Лабораторная работа № 5: Windows Forms — элементы управления Лабораторная работа № 5: Windows Forms — элементы управления
- •Вводная часть
- •О приложении к Лабораторной работе № 5
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: динамическое добавление и уничтожение элемента управления
- •5. Модификация приложения Windows Forms: стандартные диалоговые окна
- •6. Модификация приложения Windows Forms: открытие файла, сохранение файла и работа с текстом
- •7. Модификация приложения Windows Forms: прочее
- •8. Завершающая часть
- •9. О приложении к Лабораторной работе № 5
- •Лабораторная работа № 6: SolidWorks — работа с SolidWorks
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: eDrawings 2012
- •4. Модификация приложения Windows Forms: организация работы с SolidWorks через приложение
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 6
- •Лабораторная работа № 7: SolidWorks — использование SwCSharpAddin, работа с макросом и шаблоном детали
- •2. Создание приложения SwCSharpAddin
- •3. Модификация приложения SwCSharpAddin: макрос отрисовки болта
- •4. Модификация приложения SwCSharpAddin: построение через шаблон детали
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 7
- •8. Лабораторная работа № 8: Создание простого приложения Windows Foundation Presentation Лабораторная работа № 8: Создание простого приложения Windows Foundation Presentation
- •Вводная часть
- •О приложении к Лабораторной работе № 8
- •1. Вводная часть
- •2. Создание приложения Windows Foundation Presentation
- •3. Модификация приложения Windows Foundation Presentation
- •4. Модификация приложения Windows Foundation Presentation: добавление нового элемента из библиотеки компонентов wpf
- •5. Модификация приложения Windows Forms: расширение функциональности приложения и работа с оформление
- •6. Модификация приложения Windows Foundation Presentation: различные возможности wpf
- •7. Модификация приложения Windows Foundation Presentation: немного о стилях и шаблонах
- •8. Завершающая часть
- •9. О приложении к Лабораторной работе № 8
- •Лабораторная работа № 9: Создание приложения-презентации Windows Foundation Presentation
- •2. Создание приложения Windows Foundation Presentation
- •3. Модификация приложения Windows Foundation Presentation
- •4. Модификация приложения Windows Foundation Presentation: работа с решением в Expression Blend
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 9
- •Лабораторная работа № 10: Работа с базами данных — xml и ole
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: odbc
- •4. Модификация приложения Windows Forms: ole
- •5. Модификация приложения Windows Forms: xml
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 10
- •Лабораторная работа № 11: Динамическая связь приложений через библиотеку классов
- •2. Удалённый объект: создание библиотеки классов удалённого объекта
- •3. Клиент: создание приложения Windows Forms
- •4. Сервер: создание консольного приложения
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 11
- •Лабораторная работа № 12: Автоматизация Microsoft Office Word
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: создание и заполнение нового документа Microsoft Word
- •4. Модификация приложения Windows Forms: работа с шаблонами
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 12
- •Лабораторная работа № 13: Автоматизация Microsoft Office Excel
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: создание и заполнение нового документа Microsoft Excel
- •4. Модификация приложения Windows Forms: чтение данных с документа Microsoft Excel
- •5. Модификация приложения Windows Forms: прочие возможности Microsoft Excel
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 13
- •Лабораторная работа № 14: Простой растровый редактор
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: подготовка интерфейса редактора
- •4. Модификация приложения Windows Forms: функциональность растрового редактора
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 14
- •15. Лабораторная работа № 15: Векторный редактор изображений Лабораторная работа № 15: Векторный редактор изображений
- •Вводная часть
- •О приложении к Лабораторной работе № 15
- •1. Вводная часть
- •2. Создание решения, приложения Windows Forms и библиотеки классов
- •3. Модификация приложения Windows Forms: подготовка интерфейса редактора и добавление файлов ресурсов
- •4. О будущей функциональности векторного редактора изображений
- •5. Модификация приложения Windows Forms: подготовка библиотеки классов
- •6. Модификация приложения Windows Forms: функциональность векторного редактора
- •7. Завершающая часть
- •8. О приложении к Лабораторной работе № 15
- •Лабораторная работа № 16: Windows Communication Foundation
- •2. Создание приложения wcf:
- •3. Модификация приложения wcf: приложение-клиент для wcf-службы
- •4. Создание приложения Windows Forms: сервер чата на wcf
- •5. Создание приложения Windows Forms: клиент чата на wcf
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 16
- •Лабораторная работа № 17: Знакомство с Silverlight
- •2. Создание приложения Silverlight:
- •3. Модификация приложения Silverlight: первые шаги и полноэкранный режим
- •4. Модификация приложения Silverlight: простой проигрыватель mp3-файлов
- •5. Модификация приложения Silverlight: работа с анимацией
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 17
- •Лабораторная работа № 18: Знакомство с asp.Net
- •2. Создание веб-приложения asp.Net
- •3. Модификация веб-приложения asp.Net: реализация различной функциональности
- •4. Модификация веб-приложения asp.Net: ajax
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 18
- •Вводная часть
- •О приложении к Лабораторной работе № 19
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: подготовка интерфейса и добавление TabControl
- •4. Модификация приложения Windows Forms: вкладка «Просто фон!»
- •5. Модификация приложения Windows Forms: вкладка «Объекты и градиент»
- •6. Модификация приложения Windows Forms: вкладка «Мой монитор сломался!»
- •7. Модификация приложения Windows Forms: вкладка «Векторные часы»
- •8. Модификация приложения Windows Forms: вкладка «Огонь!!!»
- •9. Модификация приложения Windows Forms: вкладка «Дождик»
- •10. Завершающая часть
- •11. О приложении к Лабораторной работе № 19
- •Лабораторная работа № 20: Inventor — работа с Inventor
- •Вводная часть
- •О приложении к Лабораторной работе № 20
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: запуск и завершение приложения Inventor
- •4. Модификация приложения Windows Forms: создание новых документов
- •5. Модификация приложения Windows Forms: доступ к элементам документов Inventor
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 20
- •Лабораторная работа № 21: Знакомство с языком f# (Эф-шарп) на примере простого приложения для командной строки
- •Вводная часть
- •О приложении к Лабораторной работе № 21
- •1. Вводная часть
- •2. Основные положения при работе с f#
- •3. Создание приложения «Учебник по f#»
- •4. Создание консольного приложения
- •5. О приложении к Лабораторной работе № 21
- •Лабораторная работа № 22: Различные примеры на f#
- •2. Создание приложения «Приложение f#»
- •3. Модификация приложения f#: match
- •4. Модификация приложения f#: создание форм и рисование объектов на форме
- •5. Модификация приложения f#: работа с базой данных Microsoft Access
- •6. О приложении к Лабораторной работе № 22
- •23. Дополнительная лабораторная работа № 1
- •24. Дополнительная лабораторная работа № 2
- •25. Дополнительная лабораторная работа № 3
- •Вводная часть
- •1. Вводная часть
- •2. Создание приложения Windows Foundation Presentation
- •3. Модификация приложения Windows Foundation Presentation: добавление ресурсов
- •4. Модификация приложения Windows Foundation Presentation: добавление исходного кода
- •5. Модификация приложения Windows Foundation Presentation: оформление элемента ListBox
- •6. Завершающая часть
- •7. О приложении к данной работе
6. Модификация приложения Windows Forms: открытие файла, сохранение файла и работа с текстом
Расставим третью группу элементов. Добавим поле расширенной работы с текстом и организуем небольшой текстовый редактор с сохранением и открытием файлов, а также добавим контекстное меню по щелчку правой кнопки мыши на любой пустой позиции формы.
Расставим третью группу следующим образом:
Рис. 5. 1. Расстановка элементов третьей группы (Открытие файла, сохранение файла и работа с текстом)
Перетащим с панели элементов новый элемент ContextMenuStrip. Установим для него свойство (Name): MenuRight. Заполним его элементами также как и главное меню Файл:
Если редактирование прямо на форме не слишком наглядно, можно также воспользоваться расширенным редактором коллекции элементов для меню. Он также подходит для обычного меню MenuStrip, элемента ToolStrip и строки состояния StatusStrip.
Рис. 6. 1. Редактор коллекции элементов (для MouseRight)
С панели инструментов добавим также элементы диалоговых окон сохранения и загрузки: OpenFileDialog и FileSaveDialog. Установим им имена (Name) соответственно: FileOpen и FileSave:
Свойства элемента FileSave:
(Name): |
FileSave |
FileName: |
Документ |
^ Здесь указываем название файл без разширения по умолчанию.
InitialDirectory: |
<ваш путь> |
Если нужно указать стартовую директорию для сохранения. Путь может выглядеть так: D:\Folder1\Folder2
DefaultExt: |
Файлы RTF|*.rtf |
^ Здесь указывается суффикс файла сохранения и название этого суффикса.
Filter: |
Файлы RTF|*.rtf|Текстовый документ|*.txt|Текст OpenDocument|*.odt|Все файлы|*.* |
ПРИМЕЧЕНИЕ № 4: Свойства DefaultExt и Filter записываются через разделители «|». Напомним, что в лабораторных работах данного практикума запись значений для полей свойств элементов управления иногда такова: «Имя свойства: <Значение>.» — точка после закрывающей кавычки не относится к значению, поэтому не стоит заносить скажем в поле принимающее только целое числовое значение ещё и точку. Среда выдаст ошибку либо уберёт точку.
Пример (задание точки в имени элемента):
Рис. 6. 2. Ошибочное задание поля (Name)
Свойства элемента FileOpen:
(Name): |
FileOpen |
FileName: |
Документ |
^ Здесь указываем название файл без расширения по умолчанию.
Имена остальных элементов оставляем как есть:
(Name): |
button10 |
Text: |
Цвет |
ToolTip на Hint: |
Цвет выделенного текста |
(Name): |
button11 |
Text: |
Шрифт |
ToolTip на Hint: |
Шрифт выделенного текста |
(Name): |
button14 |
Text: |
Фон |
ToolTip на Hint: |
Фон выделенного текста |
(Name): |
button15 |
Text: |
Копировать |
ToolTip на Hint: |
Копировать выделенный текст в буфер обмена |
(Name): |
button13 |
Text: |
Выделить всё |
(Name): |
button12 |
Text: |
Очистить |
Событие Click кнопки Цвет:
private void button10_Click(object sender, EventArgs e)
{
ColorSelect.ShowDialog();
richTextBox1.SelectionColor = ColorSelect.Color; // Меняем цвет выделенного текста richTextBox1
}
Событие Click кнопки Шрифт:
private void button11_Click(object sender, EventArgs e)
{
try
{
FontSelect.ShowDialog();
richTextBox1.SelectionFont = FontSelect.Font; // Меняем шрифт выделенного текста richTextBox1
}
catch
{
// Ловим ошибку: шрифт не TrueType
}
}
Событие Click кнопки Фон:
private void button14_Click(object sender, EventArgs e)
{
ColorSelect.ShowDialog();
richTextBox1.SelectionBackColor = ColorSelect.Color; // Меняем фон выделенного текста richTextBox1
}
Событие Click кнопки Копировать:
private void button15_Click(object sender, EventArgs e)
{
richTextBox1.Copy(); // Копируем выделенный фрагмент текста в элементе
}
Событие Click кнопки Очистить:
private void button12_Click(object sender, EventArgs e)
{
richTextBox1.Clear(); // Очистка richTextBox1
}
Событие Click кнопки Выделить всё:
private void button13_Click(object sender, EventArgs e)
{
richTextBox1.Focus(); // Фокус на элемент
richTextBox1.SelectAll(); // Выделяем весь текст
}
Событие Click кнопки главного меню Открыть:
private void открытьToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
// Открываем диалог открытия файла
FileOpen.ShowDialog();
// Создаём поток для содержимого файла
Stream FStream = FileOpen.OpenFile();
// Загружаем файл (открываем форматированный текст)
richTextBox1.LoadFile(FStream, RichTextBoxStreamType.RichText);
// Закрываем поток и высвобождаем память
FStream.Close();
this.Text = Title + " :: " + FileOpen.FileName;
}
catch
{
// Ловим ошибку: файл не найден
}
}
Событие Click кнопки главного меню Сохранить как…:
private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)
{
// Создаём строковую переменную для хранения имени сохранённого файла
String FileSavedAs;
// Создаём поток в памяти
MemoryStream MStream = new MemoryStream();
// Cоздаём поток для файл
Stream FStream;
if (FileSave.ShowDialog() == DialogResult.OK) // По завершении диалога и нажатии кнопки ОК...
{
// Связываем поток с именем существующего файла, если файла нет, то создаём новый файл
FStream = FileSave.OpenFile();
// Меняем положение в потоке
MStream.Position = 0;
// Сохраняем в поток содержимое richTextBox1 (сохраняем форматированный текст)
richTextBox1.SaveFile(MStream, RichTextBoxStreamType.RichText);
// Записываем информацию в файл
MStream.WriteTo(FStream);
// Закрываем поток и высвобождаем память
FStream.Close();
FileSavedAs = FileSave.FileName;
this.Text = Title + " :: " + FileSavedAs; // После сохранения укажем сохранённый файл в заголовке
}
}
Модифицируем событие Click кнопки :
private void button4_Click(object sender, EventArgs e)
{
SaveQuestion(); // Вызов метода обработки "правильного" закрытия предложения с выводом диалога сохранения данных
}
Сам метод SaveQuestion(), добавим в этом же файле LWP05Main.cs:
void SaveQuestion()
{
DialogResult Result = MessageBox.Show("Сохранить изменения в документе?", Title + " :: Сохранение изменений", MessageBoxButtons.YesNo);
switch (Result) // Оператор переключения switch, получает значения Result результата выполнения диалога
{
case DialogResult.Yes:
{
сохранитьToolStripMenuItem_Click(null, null); // Генерируем событие нажатия кнопки Сохранить как...
Close();
break;
}
case DialogResult.No: { Close(); return; }
}
}
В начале файла добавим строковую переменную:
public partial class LWP05Main : Form
{
String Title; // Строковая переменная для хранения заголовка приложения
Модифицируем метод LWP05Main() следующим образом:
public LWP05Main()
{
InitializeComponent();
/* Инициализируем массив элементов для checkedListBox1 */
String[] CheckItems = { "Непрозрачность окна в %", "Овальное окно" };
checkedListBox1.Items.AddRange(CheckItems);
/* Устанавливаем режим выбора 'ktvtynf с двойного нажатия на одинарный */
checkedListBox1.CheckOnClick = true;
NumericAplha.Value = 100; // Начальное значение
progressBar1.Maximum = 60; // Граница индикаторы выполнения
Title = this.Text; // Сохраняем первоначальный заголовок
}
Теперь обработаем контекстное меню. События Click кнопок контекстного меню Открыть, Сохранить как… и Выход:
private void открытьToolStripMenuItem1_Click(object sender, EventArgs e)
{
открытьToolStripMenuItem_Click(null, null); // Вызываем метод события Click главного меню для пункта Открыть
}
private void сохранитьКакToolStripMenuItem_Click(object sender, EventArgs e)
{
сохранитьToolStripMenuItem_Click(null, null); // Вызываем метод события Click главного меню для пункта Сохранить как...
}
private void выйтиToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveQuestion();
}
События MouseEnter оставшихся кнопок главного меню:
private void открытьToolStripMenuItem_MouseEnter(object sender, EventArgs e)
{
StatusLabel.Text = открытьToolStripMenuItem1.Text + " (" + открытьToolStripMenuItem1.ShortcutKeyDisplayString + ")";
}
private void сохранитьToolStripMenuItem_MouseEnter(object sender, EventArgs e)
{
StatusLabel.Text = сохранитьКакToolStripMenuItem.Text + " (" + сохранитьКакToolStripMenuItem.ShortcutKeyDisplayString + ")";
}
Компилируем, проверяем работоспособность:
Рис. 6. 3. Окончательная работа третьего блока (Открытие файла, сохранение файла и работа с текстом)