Announcement

Collapse
No announcement yet.

Problem mit TreeView 2.0

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit TreeView 2.0

    Hallo zusammen,
    ich habe große Probleme mit dem TreeView 2.0
    Bei gewissen Operationen, zb. Drag&Drop in einen lerren Bereich des TreeViews, (also nicht in einen Vorhandenen Knoten hinein, sondern einen völlig neuen Ebene 1 Knoten) ist SelectedNode = Nothing und kann nicht mit einer anderen, zb der neuen Node, belegt werden (SelectedNode = Node). Das Teil bleibt störrisch auf Nothing, egal was man macht. Dieses Verhalten kam im alten TreeView 1.xx nicht vor.

    Kennt jemand eine Lösung für das Problem?
    Ist es in 3.0 auch noch existent?
    Gibt es eine möglichkeit (vorläufig) einfach das benutzen des alten TreeView 1.xx irgendwie zu erzwingen, obwohl der Rest auf Framework 2.0 läuft?

  • #2
    Gibt es eine möglichkeit (vorläufig) einfach das benutzen des alten TreeView 1.xx irgendwie zu erzwingen, obwohl der Rest auf Framework 2.0 läuft?
    Ja, in der ToolBox kann du auch die 1.xx-Version wählen (ev. zuerst hinzufügen).

    Den Rest muss ich erst prüfen.

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      wenn ich Steruerelemente hinzufüge sind bereits 3 TreeViews ausgewählt.
      1 x das 2.0
      1 x das 1.xx
      und 1 mal für Web

      Auswählen in der Toolbox kann ich nur die 2.0er Version.
      Was noch viel interessanter wäre...ich benutze das TreeView-Steuerelement in einem abgeleiteteten User-Steuerelement. Wie kann ich diesem sagen, das es sich nicht von dem 2.0er ableitet sondern von dem 1.xx.
      Beide Steuerelemente haben den "selben" Namespace: System.Windows.Forms

      [highlight=vbnet]Public Class CC_TreeView
      Inherits System.Windows.Forms.TreeView
      [/highlight]

      Comment


      • #4
        Originally posted by Andreas Mahr View Post
        Gibt es eine möglichkeit (vorläufig) einfach das benutzen des alten TreeView 1.xx irgendwie zu erzwingen, obwohl der Rest auf Framework 2.0 läuft?
        Geht nicht. In einem Prozess kann immer nur eine Frameworkversion geladen sein. Ansonsten würden sich die diversen GC's etc. ins gehege kommen. Also entweder 2.0 oder 1.1.

        Und es gibt (noch) keine Frameworkversion 3.0 sondern 2.0 + Extensions welche nur Marketingtechnisch als 3.0 und 3.5 verkauft werden.

        Comment


        • #5
          Würde es was bringen, wenn ich mir mit VS2003 unter .net 1.1 ein User-Steuerelement mache, dieses als .dll rauslasse und diese dll in mein Projekt einbinde und dann mein Steuerelement von dieser dll erben lassen würde?

          Comment


          • #6
            Das Problem liegt eher darin wie zu den Ziehvorgang ausführst. Wenn dieser korrekt ist geht es mit jeder FX-Version.

            Poste mal den Code dazu.

            mfG Gü
            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

            Comment


            • #7
              was genau meinst du?

              Comment


              • #8
                was genau meinst du?
                Poste mal den Code dazu.
                Strg + C, Strg + V
                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                Comment


                • #9
                  ich sags aber gleich, das hab ich net verzapft
                  Das hat irgendwer mal aus uraltem VB6.0 Code in .net übertragen
                  Die im Code autauchenden Spezialfunktionen sind so umfangreich, das ich bis heute (nach 2 Jahren Kampf) noch immer keine Ahnung habe, was da wirklich passiert.

                  [highlight=vbnet]
                  Protected Overridable Sub CC_TreeView_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyBase.DragDrop
                  Dim Tree As CC_TreeView = CType(sender, CC_TreeView)

                  If Not Tree.DragNode Is Nothing Then
                  Tree.DragNode.BackColor = Tree.BackColor
                  ' Tree.DragNode.ForeColor = Tree.ForeColor
                  Tree.DragNode.ForeColor = Tree.DragNode.Farbe
                  End If
                  If e.Effect = DragDropEffects.Copy Then
                  ' Tree.AllgProps.Papa.objektdrop(Tree, e)
                  Tree.AllgProps.Papa.spezial(Tree, enum_SPEZIALAKTION.DRAGDROP, e)
                  End If

                  End Sub


                  ' DragDrop-Objekt hängt an der Maus
                  Private Sub CC_TreeView_DragOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyBase.DragOver
                  Dim Tree As CC_TreeView = CType(sender, CC_TreeView)
                  Dim TNode As CC_TreeNode ', PNode As CC_TreeNode, DNode As CC_TreeNode
                  'Dim DText As String, Prefix As String
                  Dim DragSta As Integer



                  e.Effect = DragDropEffects.None
                  TNode = Tree.GetNodeAt(Tree.PointToClient(New Point(e.X, e.Y)))

                  Tree.SelectedNode = TNode

                  ' Standardfarbe setzen

                  If Not Tree.DragNode Is Nothing Then
                  If Not TNode Is Tree.DragNode Then
                  Tree.DragNode.BackColor = Tree.BackColor
                  ' Tree.DragNode.ForeColor = Tree.ForeColor
                  Tree.DragNode.ForeColor = Tree.DragNode.Farbe
                  End If
                  End If

                  Try
                  DragSta = sender.allgprops.papa.spezial(sender, enum_SPEZIALAKTION.DRAGOVER, e)
                  Catch ex As Exception
                  DragSta = enum_STATUS.NOACTION
                  End Try

                  ' Knoten Highlighten

                  If DragSta = enum_STATUS.ALDONE Then
                  e.Effect = DragDropEffects.Copy
                  If Not TNode Is Nothing Then
                  Tree.DragNode = TNode
                  TNode.BackColor = System.Drawing.SystemColors.Highlight
                  TNode.ForeColor = System.Drawing.SystemColors.HighlightText
                  End If

                  End If

                  End Sub
                  [/highlight]

                  Comment

                  Working...
                  X