Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Subtyp av object vid DragDrop

Postades av 2004-10-11 16:18:44 - Benny Jonsson, i forum vb.net, Tråden har 2 Kommentarer och lästs av 573 personer

I normalfallet så fungerar koden nedan för att fånga upp "draggedNode" men om man inte vet subtypen på noden så fungerar det inte.

Altså hur tar man reda på subtypen på ett objekt när man fångar upp det med "drgevent.Data.GetData"?

Alternativt så behöver jag inte veta subtypen utan det räcker att få reda på hur jag castar objectet till sin supertyp om jag nu lyckas fånga upp det.
<code>

Public Class myTreeView
Inherits System.Windows.Forms.TreeView
...
Protected Overrides Sub OnDragDrop(ByVal drgevent As System.Windows.Forms.DragEventArgs)
' Retrieve the node that was dragged.
Dim draggedNode As TreeNode = CType(drgevent.Data.GetData(GetType(TreeNode)), TreeNode)
...
</code>

Problem uppstår då subtyper av noder inte är känd från början av myTreeView exempelvis om noden nedan läggs till i trädet.
<code>
Public Class myTreeNode
Inherits System.windows.forms.TreeNode
public myString as string
end Class
</code>

/Benny


Svara

Sv: Subtyp av object vid DragDrop

Postades av 2004-10-11 17:58:52 - Benny Jonsson

Det är ingen snygg lösning men den funkar. Eftersom jag flyttar noder i trädet så finns ju den subtypade typen av objekt i trädet så jag gräver mig rekursivt genom trädet tills jag hittar rätt.

Om någon har ett bättre förslag så får ni gärna posta en kodsnutt.

<code>
...
' Ta hand om specialfall
If draggedNode Is Nothing Then
draggedNode = findIT(Me.Nodes, drgevent)
End If
...
end sub

Private Function findIT(ByVal aNode As TreeNodeCollection, ByVal drgevent As System.windows.Forms.DragEventArgs) As TreeNode
Dim aObj As Object
Dim aTreeNode As TreeNode
For Each aObj In aNode
aTreeNode = CType(drgevent.Data.GetData(aObj.GetType), TreeNode)
If Not aTreeNode Is Nothing Then
Return CType(aTreeNode, TreeNode)
End If
findIT(CType(aObj, TreeNode).Nodes, drgevent)
Next
End Function
</code>

Något buggig kod :(


Svara

Sv: Subtyp av object vid DragDrop

Postades av 2004-10-13 10:16:34 - Benny Jonsson

Ett bättre förslag på kod...
<code>

Private Function findIT(ByVal aNode As TreeNodeCollection, ByVal drgevent As System.windows.Forms.DragEventArgs) As TreeNode
nodFindIt = Nothing
findIT2(aNode, drgevent)
Return nodFindIt
End Function

Dim nodFindIt As TreeNode
Private Sub findIT2(ByVal aNode As TreeNodeCollection, ByVal drgevent As System.windows.Forms.DragEventArgs)
Dim aObj As Object
For Each aObj In aNode
If nodFindIt Is Nothing Then
nodFindIt = CType(drgevent.Data.GetData(aObj.GetType), TreeNode)
End If
If Not nodFindIt Is Nothing Then
Exit Sub
End If
findIT2(CType(aObj, TreeNode).Nodes, drgevent)
Next
End Sub
</code>


Svara

Nyligen

  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 882
27 965
271 776
549
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies