Przeciąganie i upuszczanie w C#

0

Cześć.
Stanołem przed problemem który nurtuje mnie od kilku dni. Nie mam dokładnego pomysłu realizacji. Moze juz ktoś coś takiego robił i pomoże chociaż narzucuć koncepcje "JAK". Mianowicie chcę napisać aplikacje w której można by było przeciągac elementy na jakiś tam panel graficzny ,a następnie po przeciągnieciu elementu po kliknięciu w niego żeby było można edytować jakieś tam jego opcje. Chce uzyskać efekt podobny na przykład w każdym programie typu CAD. Mamy tam jakieś obiekty , linie itp , możemy zmieniać ich właściwości , rozmiary.Dosłownie coś takiego .Myślałem żeby po prostu rysować te obiekty na panelu oraz wrzucać do jakiejś listy. Po najechaniu myszką w dany obszar sprawdzałbym czy akurat wskaźnik myszy nie znajduje sie nad moim obiektem, a nastepnie wyświetlał był jakieś tam jego funkcje,parametry.
Jeśli ktoś miał taki problem, robił coś takiego to proszę o wypowiedźi .Może są jakieś mechanizmy na takie podejście.?
Z góry dzięki.

P.S
Chodzi tylko o podpowiedz . Nie chce gotowców. Jeśli masz odpowiedzieć "zobacz w Google" to oszczędź sobie, bo jak bym wiedział jak się zapytać to po prostu był to zrobił ,a nie pisał tutaj.

Pozdrawiam wszystkich
wrafal

0

czesc,

moim zdaniem powinieneś przeczytać jeszcze raz to co napisałeś. Dla mnie jest to niezbyt zrozumiałe. To, co rozumiem to to, że zamierzasz osiągnąć efekt drag/drop.
Wiele zależy od obiektów, których zamierzasz używać. Jednak sam mechanizm w dużym w skrócie powinien wyglądać mniej więcej tak:

  1. Odkrywamy naciśnięcie przycisku myszy nad jakimś obiektem i zapamiętujemy go (czyli np jego ID).
  2. Monitorujemy ruch myszy oraz to czy przycisk ciągle jest naciśnięty. Dzięki temu możemy np. zmieniać w trakcie ruchu myszki wygląd kursora.
  3. W momencie puszczenia przycisku myszy sprawdzamy w jakim obszarze znajduje się kursor i odpowiednio reagujemy na to. Czyli wykonujemy lub nie operacje Drop

pzdr
squash

0

Cześć.
Właśnie mniej więcej o takim rozwiązaniu jak opisujesz myślałem. Chciałem się tylko zorientować czy istnieją może jakieś inne mechanizmy do tego typu zdań.
Dzięki za odpowiedź.
Pozdrawiam

0

here ya go:
http://www.centrumxp.pl/dotNet/1457,1,Analogowy_zegarek.aspx
w tym tutorialu m.in. jak zrobic drag and dropa.
Pozdro
~dzek

0

Ty nie potrzebujesz drag'n'drop. Tylko rysowania i obsługi myszki. W winforms da się to osiągnąć, ale nie jest to właściwe środowisko do realizacji takiego celu. Chyba że chcesz sobie potrenować owner draw.
Na początek napisz sobie program w którym będziesz mógł na formie rysować linie (odcinki), a poźniej je zaznaczać i przeciągać ich końce (czyli zmieniać położenie) oraz zmieniać ich kolor.
Powinieneś napisać to w 1,5-2h Przynajmniej na politechnice dostałbyś tyle czasu na bardziej skomplikowany program :)
Jak poradzisz sobie z liniami, możesz spróbować dodać obsługę prostokątów, okręgów, etc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1