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 / Tips & tricks

#230 - Variant på spara och hämta en Treeview struktur

Postat 2000-12-22 15:15:47 av Pelle Johansson i Kategori Programmering, C#, Kommandon med 0 Kommentarer

Sub SaveStructure()

Dim Answer As String
Dim FileName As String
Dim i As Integer
Dim iTmp As Integer
Dim iIndex As Integer
Dim RecData As String

' The only way to get the canceltrap for the commondialogbox.
' Remember to also set cancelerror to true.
On Error GoTo CancelError

CommonDialog1.Filter = "TreeView Database(*.mst) |*.mst"
If Len(CommonDialog1.FileName) < 1 Then
CommonDialog1.CancelError = True
CommonDialog1.ShowSave
End If

If Len(CommonDialog1.FileName) < 1 Then
MsgBox "Du måste ange ett filnamn att spara arbetsboken med!", 64
Exit Sub
End If

'// Öppnar databasen
Open CommonDialog1.FileName For Output As #1

'Writes the Node information from the TreeView into a table
'??. Find a root node in the treeview
' GetFirstParent

'get the index of the root node that is at the top of the treeview
iIndex = TreeView1.Nodes(mnIndex).FirstSibling.index
iTmp = iIndex

'// Adderar huvudboken:
RecData = "0_" & ";" & TreeView1.Nodes(iIndex).key & ";" & _
TreeView1.Nodes(iIndex).Text & ";" & TreeView1.Nodes(iIndex).image & _
";" & TreeView1.Nodes(iIndex).selectedimage & "; "
Print #1, RecData

While iIndex <> TreeView1.Nodes(iTmp).LastSibling.index
'loop through all the root nodes
RecData = "0_" & ";" & TreeView1.Nodes(iIndex).key & ";" & _
TreeView1.Nodes(iIndex).Text & ";" & TreeView1.Nodes(iIndex).image & _
";" & TreeView1.Nodes(iIndex).selectedimage & ";" & _
TreeView1.Nodes(iIndex).Tag
Print #1, RecData
iIndex = TreeView1.Nodes(iIndex).Next.index
Wend

For i = 1 To TreeView1.Nodes.Count
If TreeView1.Nodes(i).Children > 0 Then
'save all the child nodes
iIndex = TreeView1.Nodes(i).Child.FirstSibling.index
iTmp = iIndex
RecData = TreeView1.Nodes(iIndex).Parent.key & ";" & _
TreeView1.Nodes(iIndex).key & ";" & TreeView1.Nodes(iIndex).Text & _
";" & TreeView1.Nodes(iIndex).image & ";" & _
TreeView1.Nodes(iIndex).selectedimage & ";" & _
TreeView1.Nodes(iIndex).Tag
Print #1, RecData

While iIndex <> TreeView1.Nodes(iTmp).LastSibling.index
'loop through all the child nodes
RecData = TreeView1.Nodes(iIndex).Parent.key & ";" & _
TreeView1.Nodes(iIndex).Next.key & ";" & T_
TreeView1.Nodes(iIndex).Next.Text & ";" & _
TreeView1.Nodes(iIndex).Next.image & ";" & _
TreeView1.Nodes(iIndex).Next.selectedimage & ";" & _
TreeView1.Nodes(iIndex).Next.Tag
Print #1, RecData
iIndex = TreeView1.Nodes(iIndex).Next.index
Wend
End If
Next

Close #1
Exit Sub

CancelError:
Exit Sub

End Sub

Sub LoadStructure()

'asks the user to find the database and then restores the Nodes
'in the treeview control from the table
Dim oNodex As Node
Dim nImage As Integer
Dim nSelectedImage As Integer
Dim sTableNames As String
Dim sNodeTable As String
Dim RecordData As String

Dim Parent As String
Dim key As String
Dim Text As String
Dim image As String
Dim selectedimage As String
Dim RecordInfo(6) As String
Dim a, b, i, infokey As Integer
Dim iIndex As Integer

' *** Det verkar som om fönstret placeras utifrån vad som är
' övre vänstra hörnet på aktivt fönster, hur styr man detta?

' Activate the open commandbox
nImage = 0: nSelectedImage = 0
CommonDialog1.Filter = "TreeView Database(*.mst) |*.mst"
CommonDialog1.InitDir = App.Path
CommonDialog1.ShowOpen

If Len(CommonDialog1.FileName) < 1 Then
Exit Sub 'No file selected
End If

TreeView1.Nodes.Clear 'Clear the TreeView of any nodes
Open CommonDialog1.FileName For Input As 1

'// Finns några poster i denna databas,
' om inte- så varna användaren om detta.

Do While Not EOF(1)
'Layouten är i följande form, och ; separerad.
' -- > Parent;Key;Text;Image;SelectedImage

'6.Tag (För att ange "attached message")

Line Input #1, RecordData
'Omvandlar detta till 5 parametrar
b = 1: infokey = 0
For a = 1 To Len(RecordData)
If Mid$(RecordData, a, 1) = ";" Then
infokey = infokey + 1
RecordInfo(infokey) = Mid$(RecordData, b, a - b)
a = a + 1: b = a
End If
Next
infokey = infokey + 1
RecordInfo(infokey) = Mid$(RecordData, b, a - b)

nImage = Val(RecordInfo(4))
nSelectedImage = Val(RecordInfo(5))

If Trim(RecordInfo(1)) = "0_" Then 'All root nodes have 0_ in the parent field
Set oNodex = TreeView1.Nodes.Add(, 1, Trim(RecordInfo(2)), _
Trim(RecordInfo(3)), nImage, nSelectedImage)
Else
Set oNodex = TreeView1.Nodes.Add(Trim(RecordInfo(1)), _
tvwChild, Trim(RecordInfo(2)), Trim(RecordInfo(3)), nImage, _
nSelectedImage)
oNodex.EnsureVisible 'expend the TreeView so all nodes are visible

'Adderar Tag(Filnamn) till alla artiklar som läggs upp
oNodex.Tag = RecordInfo(6)

End If

Loop
Close #1

End Sub

Sample:
Size:

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

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 569 159
27 952
271 704
909
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