
- •Минобрнауки россии
- •1. Вводная часть
- •2. Знакомство со средой разработки на примере создания простого консольного приложения
- •3. Модификация консольного приложения
- •4. Публикация
- •5. О приложении к Лабораторной работе № 1
- •2. Лабораторная работа № 2: Создание простого приложения Windows Forms Лабораторная работа № 2: Создание простого приложения Windows Forms
- •1. Вводная часть
- •2. Создание простого приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Завершающая часть
- •5. О приложении к Лабораторной работе № 2
- •3. Лабораторная работа № 3: Windows Forms и использование некоторых элементов управления Лабораторная работа № 3: Windows Forms и использование некоторых элементов управления
- •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 — работа с формами
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: добавление новой формы
- •5. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через прямой доступ к элементу формы
- •6. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через передачу метода в конструктор формы
- •7. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через класс делегата
- •8. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через свойства
- •9. Завершающая часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: динамическое добавление и уничтожение элемента управления
- •5. Модификация приложения Windows Forms: стандартные диалоговые окна
- •6. Модификация приложения Windows Forms: открытие файла, сохранение файла и работа с текстом
- •7. Модификация приложения Windows Forms: прочее
- •8. Завершающая часть
- •9. О приложении к Лабораторной работе № 5
- •6. Лабораторная работа № 6: SolidWorks — работа с SolidWorks Лабораторная работа № 6: SolidWorks — работа с SolidWorks
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: eDrawings 2012
- •4. Модификация приложения Windows Forms: организация работы с SolidWorks через приложение
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 6
- •1. Вводная часть
- •2. Создание приложения SwCSharpAddin
- •3. Модификация приложения SwCSharpAddin: макрос отрисовки болта
- •4. Модификация приложения SwCSharpAddin: построение через шаблон детали
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 7
- •8. Лабораторная работа № 8: Создание простого приложения Windows Foundation Presentation Лабораторная работа № 8: Создание простого приложения Windows Foundation Presentation
- •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. Лабораторная работа № 9: Создание приложения-презентации Windows Foundation Presentation Лабораторная работа № 9: Создание приложения-презентации Windows Foundation Presentation
- •1. Вводная часть
- •2. Создание приложения Windows Foundation Presentation
- •3. Модификация приложения Windows Foundation Presentation
- •4. Модификация приложения Windows Foundation Presentation: работа с решением в Expression Blend
- •5. Завершающая часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: odbc
- •4. Модификация приложения Windows Forms: ole
- •5. Модификация приложения Windows Forms: xml
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 10
- •11. Лабораторная работа № 11: Динамическая связь приложений через библиотеку классов Лабораторная работа № 11: Динамическая связь приложений через библиотеку классов
- •1. Вводная часть
- •2. Удалённый объект: создание библиотеки классов удалённого объекта
- •3. Клиент: создание приложения Windows Forms
- •4. Сервер: создание консольного приложения
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 11
- •12. Лабораторная работа № 12: Автоматизация Microsoft Office Word Лабораторная работа № 12: Автоматизация Microsoft Office Word
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: создание и заполнение нового документа Microsoft Word
- •4. Модификация приложения Windows Forms: работа с шаблонами
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 12
- •13. Лабораторная работа № 13: Автоматизация Microsoft Office Excel Лабораторная работа № 13: Автоматизация Microsoft Office Excel
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: создание и заполнение нового документа Microsoft Excel
- •4. Модификация приложения Windows Forms: чтение данных с документа Microsoft Excel
- •5. Модификация приложения Windows Forms: прочие возможности Microsoft Excel
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 13
- •14. Лабораторная работа № 14: Простой растровый редактор Лабораторная работа № 14: Простой растровый редактор
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: подготовка интерфейса редактора
- •4. Модификация приложения Windows Forms: функциональность растрового редактора
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 14
- •15. Лабораторная работа № 15: Векторный редактор изображений Лабораторная работа № 15: Векторный редактор изображений
- •1. Вводная часть
- •2. Создание решения, приложения Windows Forms и библиотеки классов
- •3. Модификация приложения Windows Forms: подготовка интерфейса редактора и добавление файлов ресурсов
- •4. О будущей функциональности векторного редактора изображений
- •5. Модификация приложения Windows Forms: подготовка библиотеки классов
- •6. Модификация приложения Windows Forms: функциональность векторного редактора
- •7. Завершающая часть
- •8. О приложении к Лабораторной работе № 15
- •16. Лабораторная работа № 16: Windows Communication Foundation Лабораторная работа № 16: Windows Communication Foundation
- •1. Вводная часть
- •2. Создание приложения wcf:
- •3. Модификация приложения wcf: приложение-клиент для wcf-службы
- •4. Создание приложения Windows Forms: сервер чата на wcf
- •5. Создание приложения Windows Forms: клиент чата на wcf
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 16
- •17. Лабораторная работа № 17: Знакомство с Silverlight Лабораторная работа № 17: Знакомство с Silverlight
- •1. Вводная часть
- •2. Создание приложения Silverlight:
- •3. Модификация приложения Silverlight: первые шаги и полноэкранный режим
- •4. Модификация приложения Silverlight: простой проигрыватель mp3-файлов
- •5. Модификация приложения Silverlight: работа с анимацией
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 17
- •18. Лабораторная работа № 18: Знакомство с asp.Net Лабораторная работа № 18: Знакомство с asp.Net
- •1. Вводная часть
- •2. Создание веб-приложения asp.Net
- •3. Модификация веб-приложения asp.Net: реализация различной функциональности
- •4. Модификация веб-приложения asp.Net: ajax
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 18
- •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
- •1. Вводная часть
- •2. Основные положения при работе с f#
- •3. Создание приложения «Учебник по f#»
- •4. Создание консольного приложения
- •5. О приложении к Лабораторной работе № 21
- •22. Лабораторная работа № 22: Различные примеры на f# Лабораторная работа № 22: Различные примеры на f#
- •1. Вводная часть
- •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. О приложении к данной работе
4. Модификация приложения Windows Forms: работа с шаблонами
Для работы с шаблоном документа Word, необходим собственно сам шаблон. Создаём его. Для этого запускаем Microsoft Word 2010 и создаём новый документ. Теперь, изменим верхний колонтитул по своему вкусу:
Рис. 4. 1. Меняем стиль верхнего колонтитула шаблона документа
Этот стиль обеспечит два поля. Одно для названия, другое для даты. Выберем дату:
Теперь, необходимо связать два поля с приложения. Для этого будем использовать «Закладки». По имени закладки на какой-либо можно будет отыскать нужное текстовое поле в этом шаблоне. Сделаем закладку из текстового поля Название. Выделим текст в фиолетовом поле:
Теперь выполним: Вставка -> Закладка:
Далее вводим Имя закладки: Top_Name жмём Добавить:
Для даты правее сделаем закладку с именем Date_Now:
Закрываем колонтитул:
Теперь заполним нижний колонтитул по своему вкусу. Например так:
Рис. 4. 2. Меняем стиль нижнего колонтитула шаблона документа
Удалим
номер страницы, оставив только текст
слева под чертой. Выделим этот текст и
сделаем из него новую закладку с именем
Bottom_Name:
Закрываем колонтитул. Теперь нарисуем небольшую таблицу 3 на 4 клетки (3 столбца, 4 строки).
Рис. 4. 3. Создаём таблицу 3 на 4
Оформим её любым способом. Например, так и заполним:
Далее можно было бы поставить шесть закладок, задать им уникальные имена и искать их как в предыдущем случае, но это слишком накладно. Можно поступить проще: выделим всю таблицу и добавим закладку на всё выделение сразу. Выберем любое поле таблицы далее жмём правую кнопку мыши -> Выделить -> Таблица:
Назовём новую закладку на основе таблицы: Table:
Добавим также для наглядности график на основе данной таблицы:
Рис. 4. 4. Создаём диаграмму
Выберем Гистограмма -> Объёмная цилиндрическая:
Рис. 4. 5. Выбор типа диаграммы
Откроется окно Microsoft Excel 2010 с параметрами диаграммы. Потянем за правый нижний уголок, чтобы уменьшить область данных диаграммы:
Рис. 4. 6. Изменение области диапазона диаграммы
Далее вставим в область 3 на 4 (А1-D3) данные нашей таблицы, удалим лишние данные из ненужных ячеек и в пустые ячейки самой таблицы поставим нули:
Закроем лист Excel. Теперь присвоим диаграмме в Word имя Graph (закладка на всю таблицу).
Рис. 4. 7. Добавление имени для диаграммы
Сохраняем шаблон в произвольном месте диска под именем Шаблон: Файл -> Сохранить как -> Шаблон Word:
Необходимо добавить наш шаблон в проект приложения, чтобы при компиляции этот шаблон был «под рукой». Выполним: Проект -> Существующий элемент... (Shift+Alt+A). Выберем Все файлы (*.*) в окне добавления и укажем путь к нашему шаблону (Шаблон.dotx). Свойства добавленного файла:
Изменим: Копировать в выходной каталог: Всегда копировать.
Разместим вторую группу элементов как показано на рисунке ниже:
Рис. 4. 8. Модифицированная форма приложения и расстановка второй группы элементов
Здесь у нас два TextBox, два элемента Button, один GroupBox и DataGridView. Свойства задаём такие:
Button:
(Name): |
B_Save |
Text: |
Сохранить документ Word |
Size: |
200; 23 |
Button:
(Name): |
B_Exit |
Text: |
Выгрузить Word |
Size: |
200; 23 |
GroupBox:
(Name): |
GB_2 |
Text: |
Автоматическое заполнение шаблона документа |
TextBox:
(Name): |
TB_Name_1 |
Text: |
Введите верхнее имя |
Size: |
200; 23 |
TextBox:
(Name): |
TB_Name_2 |
Text: |
Введите нижнее имя |
Size: |
200; 23 |
DataGridView:
(Name): |
DGV_Table |
События MouseEnter и MouseLeave верхнего TextBox:
private void TB_Name_1_MouseEnter(object sender, EventArgs e)
{
TB_Name_1.Text = "";
}
private void TB_Name_1_MouseLeave(object sender, EventArgs e)
{
if (TB_Name_1.Text == "")
{
TB_Name_1.Text = "Введите верхнее имя";
}
}
События MouseEnter и MouseLeave нижнего TextBox:
private void TB_Name_2_MouseEnter(object sender, EventArgs e)
{
TB_Name_2.Text = "";
}
private void TB_Name_2_MouseLeave(object sender, EventArgs e)
{
if (TB_Name_2.Text == "")
{
TB_Name_2.Text = "Введите нижнее имя";
}
}
События Click кнопки Сохранить документ Word:
private void B_Save_Click(object sender, EventArgs e)
{
B_Save.Enabled = false;
oWordTemplate = new Word.Application();
Word._Document oDocTemplate = GetDoc(Environment.CurrentDirectory + "\\Шаблон.dotx"); // Получаем шаблон документа
oDocTemplate.SaveAs(FileName: Environment.CurrentDirectory + "\\Новый документ.docx"); // Сохраняем изменённый шаблон с новыми данными из приложения
oDocTemplate.Close(); // Закрываем документ (Word при этом не выгружается)
}
События Click кнопки Выгрузить Word:
private void B_Exit_Click(object sender, EventArgs e)
{
// Выходим из всех открытых приложением окон Word
try
{
B_Save.Enabled = true;
oWordTemplate.Quit();
}
catch { }
try
{
B_Open.Enabled = true;
B_Page_1.Enabled = false;
B_Page_2.Enabled = false;
B_Print.Enabled = false;
B_Number.Enabled = false;
B_Scale.Enabled = false;
B_Picture.Enabled = false;
oWord.Quit();
}
catch { }
}
Найдём в файле LWP12Main.cs строчку:
// Запускаем Word и создаём новый документ
Word._Application oWord;
Word._Document oDoc;
Добавим после:
Word._Application oWordTemplate;
DataTable T;
В начало файла добавим:
using Excel = Microsoft.Office.Interop.Excel; // Для графиков
Найдём:
InitializeComponent();
...
B_Picture.Enabled = false;
Добавим после:
// Формируем таблицу для заполнения DataGridView
T = new DataTable();
T.Columns.Add();
T.Columns.Add();
T.Columns.Add();
var row = T.NewRow();
row[0] = "Главное поле";
row[1] = "Параметры № 1";
row[2] = "Параметры № 2";
T.Rows.Add(row);
T.Rows.Add(T.NewRow()[0] = "Значение № 1");
T.Rows.Add(T.NewRow()[0] = "Значение № 2");
T.Rows.Add(T.NewRow()[0] = "Значение № 3");
DGV_Table.DataSource = T;
Необходимые для работы функции выполняющие действия по изменению двух надписей, таблицы и диаграммы:
private Word._Document GetDoc(string path)
{
Word._Document oDocTemplate = oWordTemplate.Documents.Add(path);
SetTemplate(oDocTemplate); // Вызываем метод изменяющий шаблон
return oDocTemplate;
}
private void SetTemplate(dynamic oDocTemplate)
{
try
{
oDocTemplate.Bookmarks["Top_Name"].Range.Text = TB_Name_1.Text; // Заполняем поле вверху документа
oDocTemplate.Bookmarks["Bottom_Name"].Range.Text = TB_Name_2.Text; // Заполняем поле внизу документа
oDocTemplate.Bookmarks["Date_Now"].Range.Text = DateTime.Now.Date.ToLocalTime();
SetTable(oDocTemplate, "Table", T); // Заполняем таблицу
SetChart(oDocTemplate, "Graph", T); // Заполняем график
}
catch { }
}
// Метод, заполняющий данными нашу таблицу в шаблоне
private void SetTable(Word._Document oDocTemplate, string bookmark, DataTable dataContext)
{
dynamic tbl = oDocTemplate.Bookmarks[bookmark].Range.Tables[1];
int tblRow = 0;
int tblCell = 0;
foreach (Word.Column col in tbl.Columns)
{
foreach (Word.Cell cell in col.Cells)
{
try
{
SetCell(cell, (string)dataContext.Rows[tblRow][tblCell]); // Вызываем метод SetCell() для проверки числе внутри ячеек и пометки их цветом
}
catch { } // Ловим пустые ячейки
tblRow++;
}
tblCell++;
tblRow = 0;
}
}
// Помечаем ячейки таблицы цветами. Красным цветом те ячейки, где значения меньше 10, зелёным те ячейки, где значения больше 100
private void SetCell(Word.Cell cell, string text)
{
int val;
if (int.TryParse(text, out val))
{
if (val < 10) cell.Shading.BackgroundPatternColor = Word.WdColor.wdColorRed;
if (val > 100) cell.Shading.BackgroundPatternColor = Word.WdColor.wdColorLightGreen;
}
cell.Range.Text = text;
}
// Метод, заполняющий данными график из таблицы в приложении
private void SetChart(Word._Document oDocTemplate, string bookmark, DataTable dataContext)
{
Word.Chart chart = oDocTemplate.Bookmarks[bookmark].Range.InlineShapes[1].Chart; // Получаем диаграмму
Word.ChartData chartData = chart.ChartData; // Переводим данные диаграммы
chartData.Activate();
Excel.Workbook dataWorkbook = (Excel.Workbook)chartData.Workbook; // Создаём новую книгу Excel на основе диаграммы
Excel.Worksheet dataSheet = (Excel.Worksheet)dataWorkbook.Worksheets[1]; // Выбиаем данные для заполнения диаграммы
dataSheet.Cells.Range["B2"].FormulaR1C1 = dataContext.Rows[1][1]; // Сохраняем данные непосредственно в ячейки книги Excel из DataTable
dataSheet.Cells.Range["B3"].FormulaR1C1 = dataContext.Rows[1][2];
dataSheet.Cells.Range["C2"].FormulaR1C1 = dataContext.Rows[2][1];
dataSheet.Cells.Range["C3"].FormulaR1C1 = dataContext.Rows[2][2];
dataSheet.Cells.Range["D2"].FormulaR1C1 = dataContext.Rows[3][1];
dataSheet.Cells.Range["D3"].FormulaR1C1 = dataContext.Rows[3][2];
dataWorkbook.Close(); // Закрываем книгу Excel
}
Готово. Можно компилировать и проверять работоспособность.