Хелпикс

Главная

Контакты

Случайная статья





Дополнение.



Дополнение.

       Компонента ColorComboBox среди инструментов С# нет. Но сделать его несложно. Воспользуемся готовым компонентом ComboBox и создадим его потомка.

       Оформим тестовый проект пошагово.

 

Шаг 1. Создадим в проекте (в отдельном файле) новый класс ColorComboBox и опишем его:

public class ColorComboBox : ComboBox

{

public ColorComboBox()

{

this.DrawMode = DrawMode.OwnerDrawFixed;

foreach (string s in Enum.GetNames(typeof(System.Drawing.KnownColor)))

Items.Add(s);

SelectedIndex = 0;

DropDownStyle = ComboBoxStyle.DropDownList;

this.DrawItem += new DrawItemEventHandler(ColorComboBox_DrawItem);

}

void ColorComboBox_DrawItem(object sender, DrawItemEventArgs e)

{

e.DrawBackground();

e.DrawFocusRectangle();

if (e.Index < 0) return;

Color c = Color.FromName(Items[e.Index] as string);

Rectangle rect = new Rectangle
        (4, e.Bounds.Top + 2, e.Bounds.Height, e.Bounds.Height - 4);

e.Graphics.FillRectangle(new SolidBrush(c), rect);

e.Graphics.DrawRectangle(Pens.Black, rect);

e.Graphics.DrawString(Items[e.Index].ToString(), Font, Brushes.Black,
        e.Bounds.Height + 5,
        ((e.Bounds.Height - Font.Height) / 2) + e.Bounds.Top);

}

 

}

 

При этом не стоит забывать о добавлении ссылок на пространства имён:

using System.Windows.Forms;

using System.Drawing;

 

Шаг 2. В текст кода пустой формы добавим поле, представляющее новый компонент и подключим обработчик события Load формы:

public partial class Form1 : Form

{

   ColorComboBox CB;

   private void Form1_Load(object sender, EventArgs e)

   {

       CB = new ColorComboBox();

       CB.Location = new Point(100, 50);

       CB.Parent = this;

   }

 

Шаг 3. Изменение цвета формы организуем по щелчку кнопки:

   private void button1_Click(object sender, EventArgs e)

   {

       this.BackColor = Color.FromName((string)(CB.SelectedItem));

   }

 

Вот и всё!

 


Приложение. Задания по вариантам (вариант – ваш номер по списку группы)

Изображение Изображение Изображение
Земной шар R – радиус шара K – количество параллелей M – количество меридианов Концентр. Окружности R – радиус большой окружности K – количество окружностей Квадраты А – сторона большего квадр. K – количество квадратов
Снежинка R – радиус внутренней окружности K – количество окружностей на луче М – количество лучей L – длина луча   Сетка А, В – стороны прямоугольника K – количество «строк» М – количество «столбцов» Лучи А – сторона квадрата K – количество отрезков на стороне
Прямоугольник А, В – стороны прямоугольника K – количество прямоугольников Прямоугольники подобны друг другу (вершины на диагоналях) Фотоплёнка   А – ширина плёнки. Ширина кадра равна ширине плёнки. Высота кадра = 2/3 его ширины. Расстояние между кадрами = размер перфорации = 1/8 ширины кадра. Человечек перемещается слева направо от первого кадра до последнего. Парашют R – радиус купола Н – высота строп. K – количество строп.
Лучи А – сторона квадрата K – количество отрезков на стороне Сетка А – сторона большего квадр. K – количество отрезков на стороне Решётка А – сторона большего квадр. K – количество отрезков разбиения сторон квадрата R – радиус кружочков Кружочки – пустые.
Треугольники A – сторона треугольника K – глубина вложенности Треугольники равносторонние. Квадраты А – сторона квадрата K – количество квадратов Кремлёвская стена K – количество зубьев Ширина стены – во весь экран Высота зуба равна его ширине, равна расстоянию между ними.
Глаза R – радиус внешней окружности K – количество пар «глаз». 0<l<1 – коэффициент уменьшения радиуса глаз. Парные глаза – одного цвета. Треугольники и круги R – радиус внешней окружности K – глубина вложенности Треугольники равносторонние. Стрелки   R – длина стрелок К – число стрелок Длина наконечника=R/5
Подшипник R – радиус окружности K – количество шариков Радиус шарика вычисляется программно. Мишень R – радиус внешней окружности K – количество окружностей М – количество отсечек между двумя окружностями. От слоя к слою отсечки смещаются на p/М. Ромбики A – сторона внешнего квадрата K – глубина вложенности
N – угольники. Вложенные правильные N–угольники N – количество углов R – радиус окружности, описанной вокруг внешнего многоугольника K – количество N-угольников Звезда L – длина луча K – число лучей a – угловая величина конца. Остальные параметры вычисляется программно. Треугольники А, В – размеры внешнего треугольника. K – количество слоёв Все треугольники равнобедренные.
Ромбики А,В – диагонали внешнего ромба. K – глубина вложенности Равнобедренная трапеция А, В, С – размеры трапеции K, М– число разбиений по горизонтали и вертикали Правильный N-угольник R – радиус описанной окружности K – количество углов Рисуются все диагонали.
Паутина R – радиус описанной окружности K – количество нитей. Каждая нить – правильный шестиугольник.        

 


 


[1] см. Приложение в конце документа.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.