Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выделить объект с помощью мыши? 
:(
    Опции темы
WaReZMEN
Дата 4.8.2008, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



Есть у меня скажем класс Кубик он  создается в классе фигура. класс фигура создается на форме так вот хочется с делать в классе кубик обработчик события чтоб при щелчке мыши на форме  там де нарисован кубик этот кубик менял цвет. Делать на форме не хочу проверку и изменение цвета хочется сделать это грамотно а как я понял это нужно делать именно через события… Прочел кучу постов о событиях толку мало как ничего полезного я не нашел…  к стати у класса фигура есть ссылка на форму. 
 smile  
P.S. C#
PM MAIL ICQ   Вверх
mr.DUDA
Дата 4.8.2008, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Событие MouseClick или Click обработай и по координатам курсора мыши найди кубик, потом меняй цвет и т.д.


--------------------
user posted image
PM MAIL WWW   Вверх
WaReZMEN
Дата 4.8.2008, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



Вот сдесь молость не монятно как провельно сделать вот кусок класса
Код

....
        public Point[] maspoints = new Point[4];// координаты профиля   

        public void SelectObject()
        {
            GraphicsPath path = new GraphicsPath();
            path.AddPolygon(this.maspoints);
            //Point MousePoint = new Point(e.X, e.Y);                                   
            Point MousePoint = new Point(15, 15);
            Region Reg = new Region(path);


            if (Reg.IsVisible(MousePoint) == true)
                this.isSelected = true;
            else
                this.isSelected = false;
            path.Dispose();
            Reg.Dispose();
        }
....

Как мне не трогая форму в этот класс передать координаты щелчка мыши???
Как рисовать то я знаю smile

Это сообщение отредактировал(а) WaReZMEN - 4.8.2008, 11:05
PM MAIL ICQ   Вверх
mr.DUDA
Дата 4.8.2008, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Cursor.Position выдаст текущие координаты курсора на экране. Для перевода в координаты на форме юзаем form.PointToClient(Cursor.Position);


--------------------
user posted image
PM MAIL WWW   Вверх
WaReZMEN
Дата 4.8.2008, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



mr.DUDA, Ну а перехватить клик???
PM MAIL ICQ   Вверх
WaReZMEN
Дата 4.8.2008, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



Я конечно понимаю что проще всего на форме в событий MouseDown вызвать процедуру и все. Но это ведь не совсем правельно у меня все клалссы делаются так чтоб быть максимально не зависимыми от формы. Я вот читал что вроде как все это можно сделать через события а вот как я к сожелению не знаю...  могу весь код привести если это нужно

Это сообщение отредактировал(а) WaReZMEN - 4.8.2008, 11:37
PM MAIL ICQ   Вверх
mr.DUDA
Дата 4.8.2008, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Классы не должны знать о форме, а форма может знать о твоих классах. Иначе если все составляющие приложения будут независимы от всех, смысла в этом никакого. Читать о паттерне MVC.


--------------------
user posted image
PM MAIL WWW   Вверх
WaReZMEN
Дата 4.8.2008, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



mr.DUDA, так всетаки как мне быть с кликом??? Делать его в форме или перехватывать в классе?
PM MAIL ICQ   Вверх
mr.DUDA
Дата 6.8.2008, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Обрабатывать MouseClick в форме, передавать вызов в метод класса а-ля ProcessMouseClick(Point position).


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0478 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.