|
| Autor |
Nachricht |
InSiDeR Newbie

Anmeldedatum: 26.01.2012 Beiträge: 7
|
Controls (& Typen) aus Form auslesen
Verfasst am: 26.01.2012, 10:17 |
|
|
Hallo zusammen,
ich habe ein Formular erstellt, welches verschiedene Steuerelemente beinhaltet.
Beispielsweise sind dort Label, Textboxen, Checkboxen etc. vorhanden.
Diese Steuerelemente (Controls) sind in einem TabControls auf verschiedene Tabs verteilt.
Nun möchte ich eine Schleife erstellen, die durch die Form geht, alle Controls ermittelt und dann abfragt, um welchen Typ es sich handelt. Wenn ich das habe, möchte ich abfragen, ob z.b. eine Textbox gefüllt ist oder eine Checkbox angekreuzt ist.
Ist dies der Fall, soll das entsprechende Tab im TabControl gekennzeichnert werden.
Mein VB Code:
For Each ctl As Control in Antrag_1
If Dim ctl TypeOf(ctl) Is Textbox Then
If ctl.Value <> "" Then
TabControl.Pages(0) = "(*) Sammelumzug"
End If
End If
Next
Leider funktioniert das in VBS nicht, da VBS kein "As" oder "TypeOf" kennt. Kann mir da jemand helfen?
Wäre überaus dankbar.
Mfg InSiDeR |
|
| |
|
 |
christopher.g Überflieger

Anmeldedatum: 03.05.2008 Beiträge: 565
|
Verfasst am: 26.01.2012, 13:15 |
|
|
hi
ich habe leider keine ahnung was in vbs geht und was nicht
ich hätte jetzt auch keine lösung für dein problem
in vb6 habe ich damals ein modul geschrieben das wie für dich geschaffen wäre
aber was du versuchen könntest
dass du deinen steuerelementen einen index gibst
somit ersparst du dir dein name und type of
Text1(3).Text
so würdest du dir wahrscheinlich sogar unnötig viel arbeit ersparten
weil deine paar steuerelemente kannst du alle in einer forschleife mit dem index ansprechen
es dreht sich wahrscheinlich e nur um
checkbox, Optionbutton, textbox, und sonst fällt mir nichts ein
naja ich hoffe ich konnte helfen
lg Deepack |
|
| |
|
 |
InSiDeR Newbie

Anmeldedatum: 26.01.2012 Beiträge: 7
|
Verfasst am: 26.01.2012, 13:33 |
|
|
Hallo Deepack,
danke für deine Antwort.
So wirklich blicke ich da nicht durch, was du mir erklären möchtest.
Problem: Ich müsste ALLEN Steuerelementen händisch einen Index geben! So ist das keineswegs gewollt.
Wäre super wenn du deinen Lösungsvorschlag in Form von Quellcode niederschreiben könntest. Blicke da nicht so wirklich durch. |
|
| |
|
 |
christopher.g Überflieger

Anmeldedatum: 03.05.2008 Beiträge: 565
|
Verfasst am: 27.01.2012, 10:46 |
|
|
das funktioniert automatisch !
Mit [STRG] C
[STRG] V
dann haben die automatisch einen index  |
|
| |
|
 |
InSiDeR Newbie

Anmeldedatum: 26.01.2012 Beiträge: 7
|
Verfasst am: 27.01.2012, 13:30 |
|
|
| christopher.g hat Folgendes geschrieben: | das funktioniert automatisch !
Mit [STRG] C
[STRG] V
dann haben die automatisch einen index  |
Ich habe aber unterschiedlich viele Steuerelemente und ich glaub nicht das das so gewollt ist jedem Steuerelement einen Index hinzuzufügen. |
|
| |
|
 |
christopher.g Überflieger

Anmeldedatum: 03.05.2008 Beiträge: 565
|
Verfasst am: 30.01.2012, 07:54 |
|
|
ja das solltest du wissen
ob es gewollt ist
Text1.Count gibt dir dann die anzahl zurück
und somit bleibt alles schön dynamisch
ansonsten schildere nochmal genau dein vorhaben
dann könnte es leichter werden für mich |
|
| |
|
 |
InSiDeR Newbie

Anmeldedatum: 26.01.2012 Beiträge: 7
|
Verfasst am: 30.01.2012, 08:49 |
|
|
Nunja ich hab eben eine Form mit verschiedenen Controls. Diese Controls sind auf einem TabControl in verschiedenen Tabs untergeordnet.
Ich möchte nun, wenn ein Control im Tab befüllt ist, sprich etwas in einer Textbox steht, ne Checkbox angekreuzt ist, was auch immer, da entsprechende Tab gekennzeichnet wird. Da die Controls in den einzelnen Tabs natürlich unterschiedlich sind und zukunftssicher sein soll, muss das Ganze dynamisch erstellt werden.
Wenn ich also 10 Tabs (Reiter) habe, soll auf dem ersten Blick sichtbar sein, in welchem Tab etwas steht. Wäre schön, wenn die Tabbeschreibung einfach fett geschrieben ist. Ein einfaches Symbol würd aber auch Sinn machen. Soll eben nur erkenntlich sein. |
|
| |
|
 |
christopher.g Überflieger

Anmeldedatum: 03.05.2008 Beiträge: 565
|
Verfasst am: 30.01.2012, 11:32 |
|
|
hi
ich werde dir hier an dieser stelle nochmals den index ans herz legen....
du hast eine textbox die beschrieben wird wenn das geschieht soll sich der checkbox value ändern
Private Sub Text1_Change(Index as integer)
if text1(Index).text <> "" then
check1(index).Value = 1
else
check1(index).value = 0
endif
End SUb
Wundersschön dynamisch
und auf beliebig erweiterbar
noch ein vorteil!
wenig zeilen code für 1000 steuerelemente |
|
| |
|
 |
InSiDeR Newbie

Anmeldedatum: 26.01.2012 Beiträge: 7
|
Verfasst am: 30.01.2012, 12:50 |
|
|
Schön und gut. Du hast eine Methode für eine Textbox geschrieben. Das heisst, jede Textbox kann diese Methode verwenden.
Und wie frage ich nun die Form ab, welche Controls vorhanden sind?
Wenn ich sie habe, wie frage ich die Form welche Typen die Controls haben?
Das muss ich alles abfragen... wie ich eine textbox abfrage und aktionen ausführe ist nicht das problem sondern die abfrage der controls und der typen. |
|
| |
|
 |
christopher.g Überflieger

Anmeldedatum: 03.05.2008 Beiträge: 565
|
Verfasst am: 30.01.2012, 17:49 |
|
|
hi
wie gesagt da weis ich leider auch keine möglichkeit mehr
aus diesem grund eben die aussage
dass du deine controls auf gut glück ansprichst
es werden nicht viele sein
nehme ich an |
|
| |
|
 |
InSiDeR Newbie

Anmeldedatum: 26.01.2012 Beiträge: 7
|
Verfasst am: 31.01.2012, 11:09 |
|
|
| Mir wurde gesagt, dass man über .Parent die Form ansprechen kann und dadurch die Controls automatisch angesprochen werden. Weiß nur absolut nicht, wie ich das umsetzen soll und wir das funktionieren soll. Hast du da evtl. eine Idee? |
|
| |
|
 |
christopher.g Überflieger

Anmeldedatum: 03.05.2008 Beiträge: 565
|
Verfasst am: 01.02.2012, 08:29 |
|
|
sry noch nie gehört
Warum eigentlich VBS und nicht vb6 oder .net? |
|
| |
|
 |
InSiDeR Newbie

Anmeldedatum: 26.01.2012 Beiträge: 7
|
Verfasst am: 13.02.2012, 14:17 |
|
|
wird nur vbs unterstützt
in vb hätte ich es auch schon gelöst |
|
| |
|
 |