Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Visual Basic 6.0 / VBA » Anclicken von Formularelementen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
29.11.2006, 12:55 Uhr
~JJM
Gast


Hallo,
Ich schreibe gerade ein Programm (unter VB6) bei dem ich mehrere Labels auf einem Formular habe. Jedes Label ist eine Art "Box", wenn man ein Label anklickt öffnet sich ein neues Fenster in dem der Inhalt angezeigt wird.

Jetzt zu meiner Frage. Ist es möglich dieses Problem anders zu lösen als mit sehr vielen "if..then..else"-Anweisungen? Ich habe zwar eine Idee wie ich es anders machen kann, doch leider weiss ich nicht ob es funktioniert.
Ist es möglich einfach abzufragen ob irgendein Label angeklickt wurde?
Wenn es möglich ist dann müsste man doch auch an den Namen des Labels kommen...

Also, ist es möglich an den Namen eines Labels zu kommen ohne das man für jedes Label eine if...then...else-Anweisung schreiben muss?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.01.2007, 21:58 Uhr
~Markus
Gast


Hallo,

verstehe nicht warum du eine if abfrage benötigst!?

es geht prinzipiel so:

nehmen wir an du hast 10 labels lblTest1 bis lblTest10. Jeder dieser hat so genannte evenst unter anderem das 'Click' event welches ausgelöst wird sowie ein benutzer mit der linken Maustaste auf diesen clickt.

die sub sieht so aus

Visual Basic:
Private Sub lblTest1_Click()

End Sub

Private Sub lblTest2_Click()

End Sub

Private Sub lblTest3_Click()

End Sub



in diese schreibst du deinen code eine if abfrage ist nicht notwendig.



die professionelle variante sieht so aus:

z.B: wieder 10 labels ALLE heißen gleich >lblTest< lediglich die Eigenschaft Index wird erhöht (von 0 bis 9). Es gibt auch hier das Click Event jedoch sieht der Syntax so aus:


Visual Basic:
Private Sub lblTest_Click(Index As Integer)

End Sub



Mithilfe des Übergabegabe parameters weißt du welcher label (0-9) gedrückt wurde.



wenn du wie du sagst beim drücken nur den Inhalt in 'Groß' Anzeigen möchtest, geht das mit einer msgbox:

Visual Basic:
Private Sub lblTest_Click(Index As Integer)
   msgbox lblTest(Index).Caption
End Sub



willst du eine 2. Form öffnen übergibst du die Caption eigenschaft am leichtesten mit einer Public variable.


willst du für jeden Label eine eigene Prozedur ausführen, brauchst du eine Abfrage, aber es gibt sinnvolleres als if then else if. in 'c' heißt es switch-case in 'vb' select-case geht so:

Visual Basic:
Private Sub lblTest_Click(Index As Integer)
        Select Case Index
           Case 0
              ' Code zu Label 0
           Case 1
              ' Code zu Label 1
           Case 2
              ' Code zu Label 2
    End Select
End Sub



du kannst natürlich noch viele case mehr schreiben aber zur veranschaulichung sollten hier 3 genügen.

mfg Markus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Visual Basic 6.0 / VBA ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: