powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Реализация системы инструментов
1 сообщений из 1, страница 1 из 1
Реализация системы инструментов
    #36593831
Inf-root
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток. Допустим есть некоторый MyControl:UserControl (в терминах C#), пусть он у нас отрисовывает и проводить всяческие манипуляции с векторной графикой. И для различных манипуляций используются разные инструменты (как в любом граф. редакторе). Так вот. Мысль такая. Есть у нас интерфейс для инструмента
Код: plaintext
1.
2.
3.
4.
5.
6.
interface ITool
{
        void RegEvents();                       //подписываемся на нужные события
        void UnregEvents();                    //отключаемся от событий на которые были подписаны
        MyControl Control{get;set;}
}


У контрола есть свойство:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public ITool Tool
{
      set
          {
              if(this._tool!=null) 
                     this._tool.UnregEvents();
              value.Control = this;
              value.RegEvents();
              this._tool = value;
          }
}

Ну и пример реализован следующий инструмент для добавления точки:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
class AddPointTool:ITool
{
        MyControl _control;
        
        void RegEvents()
        {
                _control.MouseClick += new MouseEventHandler(mouseClick);

        }
        void UnregEvents()
       {
                _control.MouseClick -= new MouseEventHandler(mouseClick);
       } 

      void mouseClick(object sender, MouseEventArgs e)
      {
            _control.Model.Add(new Vectorpoint(new PointF(e.X, e.Y));
      }
      ...
}


Так вот. Хотел узнать мнение, насколько данный подход удачен ну и другие подходы, которые вы делали или встречали.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Реализация системы инструментов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]