Прошел курс. Получил код Dreamspark. Ввожу код на сайте, пишет: Срок действия этого кода проверки уже истек. Проверьте, правильно ли введен код. У вас осталось две попытки. Вы также можете выбрать другой способ проверки или предоставить соответствующие документы, подтверждающие ваш академический статус.
Как активировать код? |
Опубликован: 25.03.2010 | Доступ: свободный | Студентов: 1446 / 158 | Оценка: 4.31 / 4.00 | Длительность: 25:42:00
Тема: Программирование
Специальности: Программист, Архитектор программного обеспечения
Теги:
Лекция 16:
Динамическая компоновка формы
Класс управления раскрывающимся списком цвета ColorComboBox
Выберем несколько цветов для нашего списка управления цветом, которые приведены в таблице.
Из-за трудностей перевода не будем вставлять в список русские названия цветов, а расположим в нем образцы цвета вместе с их оригинальными названиями.
Вот класс-расширение ColorComboBox, размещенный в отдельном одноименном файле
using System; using System.Drawing; using System.Windows.Forms; namespace Test { // Расширяем библиотечный ComboBox на управление цветом class ColorComboBox : ComboBox { public ColorComboBox()// Конструктор начальных настроек { // Заполняем источник данных ComboBox массивом названий цветов this.DataSource = new string[] { "Black", "Maroon", "Green", "Olive", "Navy", "Purple", "Teal", "Gray", "Silver", "Red", "Lime", "Yellow", "Blue", "Fuchsia", "Aqua", "White" }; // Устанавливаем режим работы как раскрывающийся список this.DropDownStyle = ComboBoxStyle.DropDownList; // Цветные прямоугольники в списке будет отрисовывать владелец this.DrawMode = DrawMode.OwnerDrawFixed; // Устанавливаем высоту элементов списка, // равную высоте унаследованного системного шрифта this.ItemHeight = this.Font.Height; } // Свойство чтения/установки цвета public Color Color { get { return Color.FromName(this.SelectedItem.ToString()); } set { // Ищем переданный цвет и позиционируем список this.SelectedItem = value.Name; /*// Либо вот такой код - вместо предыдущей строки!!! int index = this.FindStringExact(value.Name); if (index != -1) this.SelectedIndex = index; //*/ } } // Переопределяем событие списка, требующее перерисовки элемента protected override void OnDrawItem(DrawItemEventArgs e) { // Определяем контекст устройства Graphics gr = e.Graphics; // Вычисляем размеры для прямоугольника самого цвета // как левая верхняя точка привязки, ширина, высота // по параметрам элемента списка Rectangle rectColor = new Rectangle(e.Bounds.Left, e.Bounds.Top, 2 * e.Bounds.Height, e.Bounds.Height); // Раздувает прямоугольник указанным количеством rectColor.Inflate(-1, -1); // Вычисляем размеры для прямоугольника названия цвета // как левая верхняя точка привязки, ширина, высота Rectangle rectText = new Rectangle(e.Bounds.Left + 2 * e.Bounds.Height, e.Bounds.Top, e.Bounds.Width - 2 * e.Bounds.Height, e.Bounds.Height); // Рисуем фон заданным цветом e.DrawBackground();// Нацелились на фон gr.DrawRectangle(Pens.Black, rectColor);// Рамка gr.FillRectangle( new SolidBrush(Color.FromName (this.Items[e.Index].ToString())), rectColor);// Заливка // Рисуем название цвета gr.DrawString(this.Items[e.Index].ToString(), base.Font, new SolidBrush(e.ForeColor), rectText); } } }Листинг 16.16 . Код выбора цвета шрифта в файле ColorComboBox.cs