Создание Windows-приложений на основе Visual C#



              

Диалоговое окно выбора ширины линии. Элемент управления TrackBar


Займемся теперь линией для рисования — создадим собственное диалоговое окно, позволяющее устанавливать ее ширину. В окне Solution Explorer щелкаем правой кнопкой на имени проекта и в появившемся контекстном меню выбираем Add/Add Windows Form… . Называем новую форму LineWidth.cs, из окна Toolbox перетаскиваем на нее две кнопки, надпись, панель, элементы NumericUpDown , TrackBar (рис. 6.18) и устанавливаем следующие значения свойств:

button1, свойствоЗначение
NamebtnOK
Location32; 224
Text&OK
button2, свойствоЗначение
NamebtnCancel
Location136; 224
Text&Отмена
LineWidth, форма, свойствоЗначение
NameLineWidth
AcceptButtonBtnOK
CancelButtonBtnCancel
FormBorderStyleFixedDialog
MaximizeBoxFalse
MinimizeBoxFalse
Size254; 286
TextТолщина линии
label1, свойствоЗначение
Location8; 136
TextТолщина
numericUpDown1, свойствоЗначение
DecimalPlaces1
Increment0,1
Location120; 136
Minimum1
Value1
trackBar1, свойствоЗначение
DecimalPlaces1
Location16; 168
Maximum100
Minimum1
Size224; 45
TickFrequency5
Value5

Форма LineWidth в режиме дизайна

Рис. 6.18.  Форма LineWidth в режиме дизайна

Наша задача — сделать так, чтобы при перемещении ползунка или вводе значения на форме LineWidth выводился эскиз линии, а затем, после закрытия диалогового окна, можно было рисовать линией с выбранной толщиной. В классе формы создаем метод DrawLine, который будет рисовать на панели эскиз линии:

private void DrawLine() { //Создаем переменную, которая равна ординате точки, //делящий элемент panel1 по высоте пополам int y = panel1.Bottom/2; //Создаем точку point1 лежащей на левой границе панели, c ординатой y Point point1 = new Point(panel1.Left,y); //Создаем точку point2 лежащей на правой границе панели, c ординатой y Point point2 = new Point(panel1.Right,y); //Создаем экземпляр graph класса Graphics для рисования Graphics graph = panel1.CreateGraphics(); //Определяем толщину линии, равную значению в элементе numericUpDown1 float f = Decimal.ToSingle(numericUpDown1.Value); //Создаем экземпляр pen для рисования линии Pen pen = new Pen (Color. Blue, f); //Соединяем точки point1 и point2 graph.DrawLine(pen, point1, point2); }




Содержание  Назад  Вперед