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?
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.