Портал разработчиков САПР Суббота, 04.05.2024, 16:33
Приветствую Вас Гость | RSS
Главная страница | Каталог статей | Регистрация | Вход
» Меню сайта

» Категории каталога
Работа с графикой [1]
Работа с GDI+ в среде С#.NET

Начало » Статьи » C#.NET » Работа с графикой

Объект "линия" в C#
Иллюстрирует применение ООП для компактной работы с линиями

///////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
              public partial class frmMain : Form
{
                            System.Collections.ArrayList Lns =
new System.Collections.ArrayList();

                            //текущая линия
                            Line curLn = new Line();

              public frmMain()
              {
              InitializeComponent();
              }

              private void OnMsDown(object sender, MouseEventArgs e)
              {
                            //создаем класс
                            Line Ln = new Line();
                            //обозначаем точки
                            Ln.pt1 = curLn.pt1;
                            Ln.pt2 = e.Location;
                            //добавляем в список объектов
                            Lns.Add(Ln);

                            //беспричинная причина
                            curLn.pt1 = e.Location;

                            this.Text = Lns.Count.ToString();
              }

              private void OnMsMove(object sender, MouseEventArgs e)
              {
                            curLn.pt2 = e.Location;
                            this.MPicture.Invalidate();
              }

              private void LinePaint(object sender, PaintEventArgs e)
              {
                            e.Graphics.DrawLine(Pens.Black, curLn.pt1, curLn.pt2);
                            for (int i = 0; i < Lns.Count; i++)
                            {
                            e.Graphics.DrawLine(Pens.Black,
                            ((Line)Lns[i]).pt1 , ((Line)Lns[i]).pt2);
                                         }
                           }
              }

              class Line
              {
                            private Point _pt1,_pt2;

              public Point pt1
              {
                            get { return _pt1; }
                            set { _pt1 = value; }
              }

              public Point pt2
              {
                            get { return _pt2; }
                            set { _pt2 = value; }
              }

                            public Line()
              {
              }

              public Line(Point pt_1, Point pt_2)
              {
                            pt1 = pt_1;
                            pt2 = pt_2;
                            }
              }
}

Категория: Работа с графикой | Добавил: sham (19.04.2007)
Просмотров: 9518 | Комментарии: 10 | Рейтинг: 1.0 |

Всего комментариев: 7
7 Jcaiht  
0
buy lipitor 20mg online <a href="https://lipiws.top/">brand lipitor</a> lipitor for sale

6 bnol  
0
КАрявое гАвно!

4 Дима  
0
"e.Graphics" - вот за это спасибо! То, что искал!

3 FanoPoelapado  
0
Суперский должность! Блог у меня в ридере

2 NigoAgica  
0
Огромное спасибо! Очень помогла ваша информация!!!)))))))))))

1 Andrew  
0
я чёт не понял, где объект MPicture и где вызывается метод private void LinePaint(object sender, PaintEventArgs e) ????????????????????????????????????
это ведь незаконченный пример и он нихрена не рисует...

5 sham  
0
MPicture - это не что иное, как PictureBox на форме, а LinePaint - так обзывается его событие Paint, которое происходит при
this.MPicture.Invalidate();

Советую учить матчасть smile


Имя *:
Email *:
Код *:
» Форма входа

» Поиск по каталогу

» Друзья сайта


Copyright MyCorp © 2006
Сайт управляется системой uCoz