Прошел курс. Получил код Dreamspark. Ввожу код на сайте, пишет: Срок действия этого кода проверки уже истек. Проверьте, правильно ли введен код. У вас осталось две попытки. Вы также можете выбрать другой способ проверки или предоставить соответствующие документы, подтверждающие ваш академический статус.
Как активировать код? |
Опубликован: 25.03.2010 | Доступ: свободный | Студентов: 1446 / 158 | Оценка: 4.31 / 4.00 | Длительность: 25:42:00
Тема: Программирование
Специальности: Программист, Архитектор программного обеспечения
Теги:
Лекция 16:
Динамическая компоновка формы
Запускающий код приложения
И наконец, последним разрабатываем код запускающего файла Program.cs для тестирования самопального диалога и сравнения его со стандартным диалогом
using System; using System.Drawing; using System.Windows.Forms; namespace Test { // Форма приложения class MyClass : Form { public MyClass() { this.Text = "Самодельный диалог шрифта"; // Подстраиваем под ширину заголовка this.Width = this.Text.Length * this.Font.Height; this.ResizeRedraw = true;// Перерисовывать при изменении размеров this.ForeColor = Color.Red;// Писать красным this.Menu = new MainMenu();// Создать линейку для заголовков меню this.Menu.MenuItems.Add("Формат");// Добавить нулевой заголовок // Добавить в нулевой заголовок опции и общий обработчик this.Menu.MenuItems[0].MenuItems.Add ("Стандартный диалог...", OnStdFont); this.Menu.MenuItems[0].MenuItems.Add("Самодельный диалог...", OnNewFont); Panel palelMenu = new Panel();// Создать панель для красоты palelMenu.BorderStyle = BorderStyle.Fixed3D;// Рельефная palelMenu.Dock = DockStyle.Top;// Причалить вверх palelMenu.Height = 4;// Минимально отображаемая высота palelMenu.Parent = this;// Привязать к форме } // Обработка стандартного диалога void OnStdFont(object sender, EventArgs args) { // Создаем окно FontDialog dlg = new FontDialog(); // Настраиваем окно dlg.Font = this.Font; dlg.Color = this.ForeColor; dlg.ShowColor = true; // Отдаем окно для управления пользователю if (dlg.ShowDialog() == DialogResult.OK) { // Применяем выбор пользователя к форме this.Font = dlg.Font; this.ForeColor = dlg.Color; style = "";// Нечего присвоить из стандартного диалога // Обновляем вызывающую форму, при этом выводим параметры шрифта this.Invalidate(); } } string style = null;// Поле для хранения значения стиля // "Начертание:" для видимости в обработчиках // Обработка самодельного диалога void OnNewFont(object sender, EventArgs args) { // Создаем окно NewFontDialog dlg = new NewFontDialog(); // Настраиваем окно dlg.Font = this.Font; dlg.Color = this.ForeColor; dlg.ShowColor = true; // Отдаем окно для управления пользователю if (dlg.ShowDialog() == DialogResult.OK) { // Применяем выбор пользователя к форме this.Font = dlg.Font; this.ForeColor = dlg.Color; style = dlg.StyleNameRus; // Обновляем вызывающую форму, при этом выводим параметры шрифта this.Invalidate(); } } // Рисуем на форме параметры шрифта protected override void OnPaint(PaintEventArgs e) { Graphics gr = e.Graphics; // Формируем содержимое выводимого текста string message = "Текущие параметры шрифта\n" + Environment.NewLine; message += "Шрифт: " + this.Font.Name + Environment.NewLine; message += "Цвет: " + this.ForeColor.Name + Environment.NewLine; // Добавим русское название стиля из нашего диалога if (style != null && style.Length > 0) message += "Начертание: " + style + Environment.NewLine; message += "Размер: " + this.Font.SizeInPoints.ToString(); // Добавляем дополнительный стиль, если есть bool flag = (this.Font.Style & FontStyle.Strikeout) != 0 || (this.Font.Style & FontStyle.Underline) != 0; if (flag) message += Environment.NewLine; if ((this.Font.Style & FontStyle.Strikeout) != 0) message += "Зачеркнутый "; if ((this.Font.Style & FontStyle.Underline) != 0) message += " Подчеркнутый"; // Объект форматирования текстового блока StringFormat strFormat = new StringFormat(); strFormat.LineAlignment = strFormat.Alignment = StringAlignment.Center; // Рисуем текст новыми параметрами, // установленными в обработчиках gr.DrawString(message, this.Font, new SolidBrush(this.ForeColor), this.ClientRectangle, strFormat); } } // Запуск class Program { static void Main() { Application.EnableVisualStyles(); // Создали форму и передали ее в цикл сообщений Windows Application.Run(new MyClass()); } } }Листинг 16.18 . Код тестирующего файла Program.cs
Вот результат работы кода
Испытав работу нашего самодельного диалогового окна, мы можем убедиться, что оно ничем не отличается от библиотечного диалога. Для чего делали? А чтобы программистские мускулы нарастить!