русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

namespace Изменение_размеров


Дата добавления: 2015-01-16; просмотров: 537; Нарушение авторских прав


{

public partial class Form1 : Form

{int k = 0;

int w, h;

public Form1()

{ InitializeComponent();

timer1.Enabled = false;

timer2.Enabled = false;

timer1.Interval = 10;

timer2.Interval = 10;

}

 

private void button1_Click(object sender, EventArgs e)

{ timer1.Enabled = true;

h = this.Size.Height;

w = this.Size.Width;

}

 

private void timer1_Tick(object sender, EventArgs e)

{

if (w - k > 0 && h - k > 0) {this.Size = new System.Drawing.Size(w - k, h - k); k++;}

else { timer1.Enabled = false; this.Close(); }

}

 

private void button2_Click(object sender, EventArgs e)

{ timer2.Enabled = true; }

 

private void timer2_Tick(object sender, EventArgs e)

{if (k < 100)

{ this.Opacity = (float)(this.Opacity*100- k)/100;

k++;

}

else { timer2.Enabled = false; this.Close(); }

}

}

 

Определение и изменение координат и размеров компонентов

 

В программе демонстрируется, как можно узнать или изменить координаты и размеры визуальных компонентов формы.

 

// Получить координаты кнопки

private void button1_Click(object sender, EventArgs e)

{ int x=this.button1.Location.X;

int y=this.button1.Location.Y;

label1.Text ="X="+x.ToString()+" Y="+y.ToString();

}

// Изменить координаты кнопки

private void button2_Click(object sender, EventArgs e)

{

int newX = this.button2.Location.X + 150;

int newY = this.button2.Location.Y;

this.button2.Location = new System.Drawing.Point(newX, newY);

}

// Получить размер кнопки

private void button3_Click(object sender, EventArgs e)

{

int w = this.button3.Size.Width;

int h = this.button3.Size.Height;

label2.Text = "Width=" + w.ToString() + "\n" + "Height=" + h.ToString();



}

// Изменить размер кнопки

private void button4_Click(object sender, EventArgs e)

{

this.button4.Size = newSize(this.button4.Size.Width * 2, this.button4.Size.Height);

}

 

Перетаскивание объектов с помощью интерфейса drag-and-drop

 

Программа позволяет перемещать по форме некоторый объект (в нашем случае- прямоугольник). При входе указателя мыши в границы объекта он приобретает стандартный для операции перетаскаваняи вид – руку, при выходе за границы компонента указатель приобретает вид стрелки. Для изображения прямоугольника использован компонент panel.

 

namespaceПеретаскивание_объектов

{

public partial classForm1 : Form

{int x = 0;

int y = 0;

 

public Form1()

{

InitializeComponent();

}

 

private void panel1_MouseDown(object sender, MouseEventArgs e)

{

x = e.X;

y = e.Y;

}

 

private void panel1_MouseMove(object sender, MouseEventArgs e)

{this.Cursor = Cursors.Hand;

if (e.Button == MouseButtons.Left)

{Point pos = newPoint(Cursor.Position.X - x, Cursor.Position.Y - y);

panel1.Location = PointToClient(pos);

}

}

 

privatevoid panel1_MouseLeave(object sender, EventArgs e)

{

this.Cursor = Cursors.Arrow;

}

 

Дополнение к теме «Графика»

 

Пример1.

По щелчку пользователя выполняется отрисовка точки на форме с указанием ее порядкового номера. Через два текстовых поля показываются координаты текущей точки.

 

 

namespace Координаты_курсора_и_рисование_точек_там

{

public partial classForm1 : Form

{ // k-номер текущей точки

int k = 1;

public Form1()

{

InitializeComponent();

}

 

private void Form1_MouseClick(object sender, MouseEventArgs e)

{

Font font1 = newFont("Arial", 11, FontStyle.Bold);

textBox1.Text = "X="+e.X.ToString();

textBox2.Text = "Y="+e.Y.ToString();

// Подготовка области рисования

System.Drawing.Graphics g = this.CreateGraphics();

 

// Использование красной ручки

System.Drawing.Pen redPen = new System.Drawing.Pen(Color.Red, 3);

 

// Рисуем окружность (эллипс, точки которого равноудалены от центра)

// Левый верхний угол квадрата имеет координаты X и Y текущего положения мыши

g.DrawEllipse(redPen, e.X, e.Y, 2, 2);

// подписываем точку

string s = Convert.ToString(k);

k++;

g.DrawString(s, font1, Brushes.Black, e.X+1, e.Y+1);

// Очистка

g.Dispose();

}

}

}

 

Программное добавление элементов управления

(«контролов»). Делегаты.

Добавим две кнопки в коллекцию элементов управления формы.

 

 

Чтобы добавить визуальные элементы управления на форму понадобиться выполнить 3 действия:

1. Создать объекты button1 и button2 класса Button;

2. Настроить внешний вид элементов управления, например, задав им имя, высоту, ширину, координаты места расположения на форме и т.д.

3. Добавить контрол в коллекцию управляющих элементов.

Чтобы увидеть созданный control на форме, его надо поместить в коллекцию элементов управления, которая представлена свойством Controls.

Для добавления новых элементов в коллекцию используется метод Add.

Также опишем методы, которые будет выполнять какие-либо действия при нажатии кнопок. Пусть, например, щелчок по кнопке выводит на экран некоторую надпись. Поскольку такие методы отслеживают наступление некоторых событий (в нашем случае это нажатие кнопок) и затем каким-то образом обрабатывают их, они называются «обработчиками событий».

Так же нам понадобится привязать обработчики событий к соответствующим событиям, то есть к нажатию кнопок.

События в платформе .NET Framework основаны на модели делегата. Событие представляет собой сообщение, посылаемое объектом, чтобы сигнализировать о совершении какого-либо действия. Такое действие может быть вызвано действиями пользователя, например нажатием кнопки, или это действие может быть вызвано другой программной логикой, например изменением значения свойства. Объект, вызывающий событие, называется отправителем события.

Отправителю события не известен объект или метод, который будет получать (обрабатывать) сформированные отправителем события.

Делегат — это тип, который содержит ссылку на метод. Делегат объявлен с сигнатурой, которая указывает тип возвращаемого значения и параметры для методов на которые он ссылается, и может содержать ссылки только на методы, соответствующие подписи. Делегаты широко используются в платформе .NET Framework. В контексте событий, делегат-это посредник между источником событий и кодом, который обрабатывает событие. Вы связываете делегат с событием, путем включения типа делегата в объявление события.

Для поддержки сценариев событий используется делегат EventHandler (для всех событий, не содержащих данных события), или делегат EventHandler<TEventArgs> (для событий, которые включают данные о событии).

 

namespace Создание_объектов

{

public partial classForm1 : Form

{

 

public Form1()

{

InitializeComponent();

 

Button button1 = newButton();

button1.Text = "Кнопка 1";

button1.Width = 100;

button1.Height = 30;

button1.Location = newPoint(100, 70);

 

Button button2 = newButton();

button2.Text = "Кнопка 2";

button2.Width = 100;

button2.Height = 30;

button2.Location= newPoint(button1.Left, button1.Height + button1.Top + 10);

 

Controls.Add(button1);

Controls.Add(button2);

 

button1.Click += new EventHandler(button1_Click);

button2.Click += new EventHandler(button2_Click);

}

 

 

private void button1_Click(object sender, EventArgs e)

{ label1.Text = "Нажатакнопка 1"; }

 

private void button2_Click(object sender, EventArgs e)

{ label1.Text = "Нажата кнопка 2"; }

 

 

Программный вызов обработчиков событий

 

Пример1.

Вызовем программно обработчик события Click для кнопки.

При щелчке по кнопке 1 будет программно запущен обработчик события Click для кнопки 2:

 

 

private void button1_Click(object sender, EventArgs e)

{// передаем управление обработчику события Click кнопки 2

button2.PerformClick();

}

 

private void button2_Click(object sender, EventArgs e)

{

label1.Text = "Нажата кнопка 2";

}

 



<== предыдущая лекция | следующая лекция ==>
БИБЛИОГРАФИЧЕСКИЙ СПИСОК | Некоторые задачи естествознания, приводящие к дифференциальным уравнениям.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.236 сек.