[C#.NET] DragDrop: Zoek source object

Pagina: 1
Acties:

  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

Topicstarter
Hallo,

Ik ben sinds een maand bezig in C#.NET en zit nu met het volgende probleem.
In een applicatie die ik aan het maken ben zitten 2...n ListBox objecten, met daarin 1...n waarden. Nu wil ik van de ene ListBox naar de andere kunnen slepen (werkt) en op het moment dat de muisknop wordt losgelaten moet de DragDrop methode het volgende weten:
  • Van welke ListBox kom ik af?
  • Welk object (listbox.item) werd gedragged? (e.Data.GetData(typeof(System.String)).ToString();)
  • Naar welke ListBox wordt er gedragged?? (ListBox listbox = sender as Listbox; listbox.Name;)
  • Op welk object (listbox.item) wordt het gesleepte object los gelaten?
Het eerste en vierde weet ik niet hoe dat opgehaald moet worden en de tweede en derde weet ik al.

De vraag is dus:
Weet iemand hoe ik de source ListBox achterhaal EN hoe ik achterhaal op welk object (listbox.item) de drag eindigt?

Het eerste is op te lossen via een global member dat in de methode DragOver geset wordt, maar dat doe ik liever niet, tenzij het natuurlijk niet anders kan.

Verder hebben msdn.microsoft.com, code-project, Csharp-corner e.a. me hiermee niet verder geholpen.

Alvast bedankt. :)

edit:
OK... punt 4 heb ik nu opgelost. en wel als volgt.
listbox.Items[listbox.IndexFromPoint(listbox.PointToClient(new Point(e.X, e.Y)))].ToString();

Wat er dus gebeurt is het volgende:
[list]
• De listbox bevat items,
• Er wordt gekeken op welke positie de muis zich bevind en welke index daar bij hoort. Maar omdat die muispositie aan het form hangt klopt die niet.
• Als laatste kijk ik dus naar het punt van de muis binnen de client en dan kan de index dus WEL opgehaald worden.[/list]

[ Voor 20% gewijzigd door akakiwi op 31-12-2004 10:36 . Reden: Gedeelte van de oplossing gevonden en opmaak ]

| Life is a game (and games are fun) | homepage |