Avatar billede gamlesvin Nybegynder
03. marts 2003 - 15:40 Der er 6 kommentarer og
3 løsninger

Jeg har brug for en funktion i VB, tilsvarende "this" i java

Hej

Jeg ved ikke om der eksisterer en funktion i VB, som tilsvarer "this" funktionen i Java. Sådan at man man kan slippe for at skrive eks. "CommandButton1.Caption" men blot skriver "this.caption" når man altså laver et kald til en kontrols/metodes properties og man laver kaldet fra den pågældende kontrol/metode.

Håber at jeg gør mig forståelig, og at du kan hjælpe mig.

Mvh. Gamle
Avatar billede medions Nybegynder
03. marts 2003 - 15:43 #1
Me.Caption

//>Rune
Avatar billede medions Nybegynder
03. marts 2003 - 15:43 #2
Altså this = Me

//>Rune
Avatar billede gamlesvin Nybegynder
03. marts 2003 - 15:55 #3
Hvorfor vil den så ikke acceptere dette:

Private Sub CommandButton1_Click()
    Selection.FormulaR1C1 = Me.Caption
End Sub
Avatar billede tjacob Juniormester
03. marts 2003 - 17:30 #4
Du kan definere et objekt:

Dim DenneKnap as Commandbutton
Set DenneKnap = Form1.CommandButton1

nu kan du tilgå CommandButton1 med DenneKnap som f.eks DenneKnap.Caption = "kurt"

Hvis du ikke helt kender typen på objektet, så bare undlad typen.
Avatar billede gamlesvin Nybegynder
04. marts 2003 - 12:05 #5
Det jeg havde tænkt mig var at der skal oprettes en hulens masse knapper, og i stedet for at skulle ændre indmaden i dem alle, når jeg copy/paster dem, så de refererer til henholdsvis CommandButton1, 2, 3 etc. (Desude vil jeg ikke blot navngive knapperne blot med et nummer, men et navn der beskriver knappens funktionalitet), så skal "this" blot pege på den pågældende kontrol/metode.

FORENKLET EKSEMPEL:

Private Sub CommandButtonKontaktPerson_Click()
    Selection.FormulaR1C1 = THIS.Caption
    MsgBox THIS.Caption
End Sub

Private Sub CommandButtonKundeProfil_Click()
    Selection.FormulaR1C1 = THIS.Caption
    MsgBox THIS.Caption
End Sub
Avatar billede tjacob Juniormester
04. marts 2003 - 12:23 #6
Lav knapperne som et kontrol array:
Kopier så mange du vil, og derefter ændrer du deres captions
Kald knapperne f.eks. cmdKontaktPerson()

Nu gælder koden for alle knapperne i arrayet:
Private Sub cmdKontaktPerson_Click(Index As Integer)
    Selection.FormulaR1C1 = Me.cmdKontaktPerson(Index).Caption
    MsgBox THIS.Caption
End Sub

/tjacob
Avatar billede tjacob Juniormester
04. marts 2003 - 12:24 #7
-hov, glemte a ændre MsgBox Me.cmdKontaktPerson(Index).Caption
Avatar billede olet Nybegynder
04. marts 2003 - 12:52 #8
Du kan anvende With funktionen i VB:

Private Sub CommandButtonKontaktPerson_Click()
    With CommandButtonKontaktPerson Do
        Selection.FormulaR1C1 = .Caption
        MsgBox .Caption
    End With
End Sub

Private Sub CommandButtonKundeProfil_Click()
    With CommandButtonKundeProfilDo
        Selection.FormulaR1C1 = .Caption
        MsgBox .Caption
    End With
End Sub
Avatar billede gamlesvin Nybegynder
04. marts 2003 - 14:57 #9
Mange tak for hjælpen, nu har jeg bestemt noget at gå ud fra.

Hav en god dag
/Gamle
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester