Objekt auf Objekt

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Objekt auf Objekt

    Hey Leute.
    Tut mir Leid das ich auf andere Tehmen bzw auch meine eigenen Themen nicht eingehen konnte da ich kein Internet hatte.

    Ich habe im Moment folgendes Problem:
    Ich habe es geschafft das ich eine Picturebox mithilfe von der Maus (Maustaste gedrückt halten picturebox ziehst du sozusagen mit dir mit beim loslassen bleib die and der stelle) zu bewegen.
    Nun will ich aber wenn z.B. die Picturebox auf ein Bestimmtes Objekt gezogen wird zb ein Panel oder eine andere Picturebox das ein Ereignis ausgelöst wird z.B. es erscheint eine Message box.
    Ich mein das so das wenn die Picture box in ein Objekt ist oder über ein Objekt ist das ein Ereignis ausgelöst werden soll nur hab kein Plan wie das gehen soll.

    Hoffe ihr könnt mir iwie Helfen

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Controls sind typischerweise eher schlecht für solche Spielereien geeignet.

    Hast Du Dir über folgende Dinge Gedanken gemacht?:
    Ab wann gilt ein Objekt als "auf einem anderen Objekt drauf"? Und damit zusammenhängend:
    Ist es möglich, dass; bzw. wenn ja: Was passiert, wenn ein Objekt gleichzeitig auf zwei andere Objekte gezogen wird?
    Wenn sich zwei Objekte überlappen: Wie legst Du fest, welches Objekt das andere verdeckt? Kann man diese Reihenfolge verändern? Und damit zusammenhängend:
    Wenn ein kleineres Objekt im Hintergrund von einem größeren Objekt im Vordergrund vollständig verdeckt wird: Wie kommt man wieder an das kleinere Objekt ran?
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Ich hab es mir so vorgestellt das ich ein Panel habe das nicht verschiebbar ist und im Hintergrund ist dazu hab ich eine Picturebox die ich mit der Maus rumbewgn kann wenn ich die Picturebox auf das Panel ziehe sodass die Picturebox über das Panel ist soll ein Ereignis ausgelöst werden
    @KappeHD
    Gib dem Panel im Designer AllowDrop = True.
    Im MouseDown der PictureBox machst Du Me.DoDragDrop(Me.PictureBox1, DragDropEffects.All).
    Im DragEnter des Panels hast Du das Event, das Du suchst.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Was du beschreibst wird ziemlich schwierig umzusetzen zu sein, und am Ende womöglich nur eine mäßig ergonomische Oberfläche darstellen.

    Jetzt kommt eine schwierige Frage: Was soll dein Programm eiglich tun?
    Also versuch mal zu erklären, was der User davon haben soll - wird das eine Art Foto-Album, ein Bild-Collage-Tool, ein optisches Gimmick für ein Addressbuch?
    Also erklär das Ziel für den User, und nicht die Mittel (pictureboxen, panel, whatever - das nicht).

    WinForms bietet schon einige Unterstützung für Dragging-Vorgänge, aber das geht evtl. bisserl anders, sieht dann auch anders aus als was du dir vorstellst, ist aber möglicherweise sogar besser geeignet, das eigentliche Ziel umzusetzen.

    Aber dazu müsste man halt das angestrebte Ziel kennen und verstehen.

    Edit: Ups - jetzt ist Rod schon in die Detail-Diskussion eingestiegen - hmm, da werd ich jetzt wohl keine vernünftige Antwort mehr kriegen...