Hallo,
möchte auf Tastendruck fast alle Elemente auf einer Form unsichtbar machen. Ich nehmen nicht an, dass es dafür einen Befehl gibt.
Gibt es aber eine Möglichkeit, einen Loop über alle vorhandenen Elemente zu machen?
Gruß
Gunter
Hallo,
möchte auf Tastendruck fast alle Elemente auf einer Form unsichtbar machen. Ich nehmen nicht an, dass es dafür einen Befehl gibt.
Gibt es aber eine Möglichkeit, einen Loop über alle vorhandenen Elemente zu machen?
Gruß
Gunter
Hallo
möchte auf Tastendruck fast alle Elemente auf einer Form
unsichtbar machen. Ich nehmen nicht an, dass es dafür einen
Befehl gibt.
Nein einen direkten Befehl gibt es dazu nicht.
Aber was verstehst du unter fast alle ?
Um alle Elemente auszublenden, nutze folgende Variante
Dim C as Control
For Each C in Me
c.Visible=False
Next
Gibt es aber eine Möglichkeit, einen Loop über alle
vorhandenen Elemente zu machen?
Siehe oben
Kleine Tipp am Rande. Willst du nur bedingte Elemente ausblebenden, so mache dich der Tag Eigenschaft zu nutze. Sprich weise ihn ein Wert zu und frage den dann vorher ab
Dim C as Control
For Each C in Me
if C.Tag = Dein Wert then c.Visible=False
Next
MfG Alex
PS: On Error Resume Next nicht vergessen
Hallo Alex,
genau das habe ich gesucht.
Vielen Dank
Gruß
Gunter
Aber was verstehst du unter fast alle ?
Na ja ein paar sollen schon noch sichtbar sein,
die schalte ich geziehlt wieder ein.
Um alle Elemente auszublenden, nutze folgende Variante
Dim C as Control
For Each C in Me
c.Visible=False
Next
Hallo Alex,
wollte deinen Vorschlag universeller machen und die ganzen Einstellungen abspeichern:
Speichern:
Dim Groesse(0 to 100) as Control
Dim C as Control
For Each C In Me
i = i + 1
Groesse(i) = C
Next
…
dann wieder zurückladen:
For Each C In Me
i = i + 1
C = Groesse(i)
Next
Leider tut sich da nichts.
Hast du eine Idee?
Gruß
Gunter
Hallo Gunter,
versuch mal, das i vor jeder Schleife zu initialisieren:
i=0
Gruß, Andreas
Hallo Alex,
Leider tut sich da nichts.
Hast du eine Idee?
Gruß
Gunter
Hallo,
das hatte ich bereits schon.
Es tut sich nichts
Gruß
Gunter
Hallo Gunter,
probier das mal:
Private Sub Form\_Load()
Dim C As Control, i As Integer, Groesse(100) As Boolean
For Each C In Me.Controls
i = i + 1
Groesse(i) = C.Visible
MsgBox Groesse(i)
Next C
Me.Show
For Each C In Me.Controls
i = i + 1
Groesse(i) = C.Visible
MsgBox Groesse(i)
Next C
End Sub
Half das weiter?
Nach Dim i as Integer brauchst du kein i=0, i ist automatisch Null durch das Dim.
Gruß
Reinhard
Hallo Reinhard,
so ähnlich habe ich es inzwischen realisiert.
Das ist halt wesentlich aufwendiger, da ich auch die Größen und Ort
der Controls speichern muß, weil sie temporär verändert werden.
Ich hatte gehofft, es ginge einfacher.
Trotzdem besten Dank.
Gruß
Gunter
Grüezi Gunter
möchte auf Tastendruck fast alle Elemente auf einer Form
unsichtbar machen. Ich nehmen nicht an, dass es dafür einen
Befehl gibt.
Gibt es aber eine Möglichkeit, einen Loop über alle
vorhandenen Elemente zu machen?
Je nach Anordnung der Elemente auf deiner UF wäre es ev. auch möglich ein leere Label einfach ‚über‘ die Elemente zu ziehen.
Diese werden dann davon verdeckt und sind nicht mehr zugänglich.
Um die Sichtbarkeit wieder herzustellen verschiebst Du das Label dann ausserhalb oder an den Rand der UF.
Mit freundlichen Grüssen
Thomas Ramel
–