vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2021
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
richtiges löschen einer Collectioninstanz 
Autor: guenni255
Datum: 19.02.21 11:41

Hallo Forum

Ich habe folgendes Problem.

Ich habe ein Form (durch instanzbildung Anzahl flexibel) mit checkboxen (Anzahl flexibel).
den Inhalt der checkboxen übernehme ich in eine Collection.
alles soweit gut.
Nur möchte ich aber eines der dargestellten form löschen, und damit die zugehörige collection, und jetzt fangen die Probleme an.
Ich möchte die Inhalte der anderen Form´s und Collection´s behalten und neu darstellen.
Ich habe jetzt alle mir bekannten Variationen durch versucht. komme aber nicht zum gewünschten Ergebnis.
immer wieder taucht eine Fehlermeldung auf, entweder beim Ändern der checkboxen, oder beim Aufruf und neu darstellen der verbleibenden Form oder beim löschen der Form selbst.

Frage: Wie löscht man eine Collectioninstanz ohne die anderen zu verlieren?

Hier mal mein code:

Public wt() As Collection
Public xTln As String
Public Testform() As frmform
Public Zähler As Integer
Public i As Integer
Public clickout As Boolean
'Form zur erstellung der Instanzen des erwähnten Form´s
Private Sub Command1_Click()
Zähler = Zähler + 1
ReDim Preserve Testform(Zähler)
Call testen
End Sub
'=====================================================================
Private Sub testen()
Dim temp As frmform
Dim i As Integer
Set temp = New frmform
temp.Formn = Zähler
Select Case Zähler
     Case 1
     temp.Move 0, 2000
 
     Case Is > 1
     temp.Move Testform(Zähler - 1).Left + Testform(Zähler - 1).Width + 150, _
       Testform(Zähler - 1).Top
End Select
Set Testform(Zähler) = temp
Testform(Zähler).Show
End Sub
'=======================================================================
 
Private Sub Form_Load()
Me.Move 0, 0
Zähler = 0
End Sub
'Das eigentliche Form
Private xwt As Collection
Private i As Integer
Private j As Integer
Private x As Integer
Private xFormn As Integer
Public Property Get Formn() As Integer
Formn = xFormn
End Property
Public Property Let Formn(ByVal vNewValue As Integer)
xFormn = vNewValue
End Property
 
Private Sub Check1_Click(Index As Integer)
On Error Resume Next 'Fehler der bei wt.remove für die erste Eintragung 
' auftritt bewusst übersprungen
'Select Case Me.Check1(Index).Value
'Case 0
wt(Me.Formn).Remove (CStr(Me.Formn & Index))
wt(Me.Formn).Add Me.Check1(Index).Value, (CStr(Me.Formn & Index))
'Case 1
'wt(Me.Formn).Add Me.Check1(Index).Value, CStr(Me.Formn & Index)
'End Select
End Sub
 
'=================================
Private Sub Command1_Click()
Call anzeigen
End Sub
'=================================
Private Sub Command2_Click()
Set xwt = New Collection
Dim i As Integer
If CInt(Me.Text1.Text) = UBound(wt) Then Set wt(UBound(wt)) = Nothing: Exit Sub
For i = (CInt(Me.Text1.Text)) To UBound(wt)
     If i <> UBound(wt) Then
          Set xwt = wt(i + 1)
     Else
          Set xwt = wt(i)
     End If
 
     Set wt(i) = xwt
Next
 
 
End Sub
'=================================
Private Sub Form_Load()
ReDim Preserve wt(Me.Formn)
Set wt(Me.Formn) = New Collection
Me.Caption = "Form " & Zähler
 
     For i = 1 To 4'die 4 nur zu testzwecken wir durch eine Variable ersetz die 
     ' wo anders festgelegt wird
          Load Me.Check1(i)
          Select Case i
               Case 1
               Me.Check1(i).Move 0, 1000
               Case Is > 1
               Me.Check1(i).Move Me.Check1(i - 1).Left + Me.Check1(i - 1).Width _
                 + 30, Me.Check1(i - 1).Top
         End Select
         Me.Check1(i).Visible = True
         Me.Check1(i).Value = 1
     Next
End Sub
'Modul zum Anzeigen der Collectioninhalte
Public Sub anzeigen()
On Error Resume Next
Dim temp As Collection
Dim j As Integer
Dim c As Integer
For i = 1 To UBound(wt)
For j = 1 To Testform(1).Check1.UBound
Debug.Print wt(i)(CStr(i & j)), i, j
Debug.Print "--------------------"
Next
Next
End Sub
Ich hoffe mir kann jemand helfen.
Dafür bedanke ich mich im Voraus

LG Günni
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
richtiges löschen einer Collectioninstanz234guenni25519.02.21 11:41
Re: richtiges löschen einer Collectioninstanz104Souffleurlos19.02.21 12:25
Re: richtiges löschen einer Collectioninstanz94guenni25519.02.21 14:29
Re: richtiges löschen einer Collectioninstanz97Souffleurlos19.02.21 16:50
Re: richtiges löschen einer Collectioninstanz85guenni25523.02.21 16:23
Re: richtiges löschen einer Collectioninstanz95Souffleurlos23.02.21 17:00
Re: richtiges löschen einer Collectioninstanz76guenni25524.02.21 17:39
Re: richtiges löschen einer Collectioninstanz78Souffleurlos24.02.21 19:49
Re: richtiges löschen einer Collectioninstanz77guenni25525.02.21 02:09

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2021 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel