Дополнение.
Дополнение.
Компонента 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] см. Приложение в конце документа.
|