Avatar billede discowarp9 Nybegynder
31. oktober 2003 - 15:14 Der er 1 kommentar og
1 løsning

Reference to Non-Shared

Hejsa,
Jeg er ved at udvikle en Visual Basic .Net applikation, men støder ind i et problem, når jeg forssøger at opdatere controls på min form fra en class.
Classen kalder en sub i form-classen, der opdaterer controllerne.
Problemet er at for at classen skal have adgang til sub'en skal sub defineres som Shared, men så kan jeg ikke opdatere controllerne fra sub'en. Jeg får fejlen "Cannot refer to an instance member of a class...".
Hvis jeg derimod ikke sætter sub'en til at være shared, men definere den som public, får jeg fejlen "Reference to non-shared member requires an object reference".

Er der nogen der ved hvordan jeg får det til at virke?
Avatar billede m_skau Nybegynder
31. oktober 2003 - 15:28 #1
Hvis du tilføjer et modul som dette:

--------------

Module startmodule
    Public mainForm As frmMain

    Public Sub Main()
        mainForm = New frmMain
        myForms.frmMain = mainForm
        Application.Run(mainForm)
    End Sub

    Public Class myForms
        Private Shared m_MainForm As frmMain
        Public Shared Property frmMain() As frmMain
            Get
                Return m_MainForm
            End Get
            Set(ByVal Value As frmMain)
                m_MainForm = Value
            End Set
        End Property
    End Class

End Module

-----------
- og tilføjer alle de forms du vil kunne referere controls på i strukturen ovenfor

Og sætter projektets startup object til sub main (Project / Properties / Startup object)

- så kan du referere til (alle) dine controls på de "registrerede" forms vha. klassen myforms - f.eks:
    dim højde as integer = myForms.frmMain.PictureBox1.Image.Height
fra hvorsomhelst i koden.
Avatar billede discowarp9 Nybegynder
31. oktober 2003 - 18:58 #2
Fantastisk, det virkede!
Tak for hjælpen.
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