System.NullReferenceException was unhandled
Message=Object reference not set to an instance of an object.
Source=Landlord Tycoon
StackTrace:
at Landlord_Tycoon.House_Information.btnUpgrade_1_Click(Object sender, EventArgs e) in C:\Users\Admin\documents\visual studio 2010\Projects\Landlord Tycoon\Landlord Tycoon\House_Information.vb:line 46
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoCompo nentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
at Landlord_Tycoon.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
Error on this line:
From:Code:Game_Board.UpdateMoney()
Source code:Code:Private Sub btnUpgrade_1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpgrade_1.Click If Storage.HouseNumber = 1 Then If Storage.PlayerMoney >= 1000 Then Storage.PlayerMoney -= 1000 Storage.HomeValue += 500 HouseChecker() Game_Board.UpdateMoney() End If End If End Sub
Board:
house Info Form:Code:Public Class Game_Board Private Storage As New Storage Sub New(ByRef argstorage As Storage) InitializeComponent() storage = argstorage Me.Show() End Sub Dim House_Information As House_Information Private Sub GameBoard_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If Storage.NewGame = True Then Storage.PlayerMoney = 5000 Storage.OwnProperty1 = True End If UpdateMoney() End Sub Private Sub House1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles House1.Click Storage.HouseNumber = 1 'Prevents Multipal Windows being Open at once If Storage.FormOpen = True Then House_Information.Close() House_Information = New House_Information(Storage) Else House_Information = New House_Information(Storage) End If End Sub Public Sub UpdateMoney() lblPlayerMoney.Text = Storage.PlayerMoney End Sub End Class
Storage Class:Code:Public Class House_Information Private Storage As New Storage Sub New(ByRef argstorage As Storage) InitializeComponent() storage = argstorage Me.Show() End Sub Dim Game_Board As Game_Board Private Sub House_Information_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing 'Prevents Multipal Windows being Open at once Storage.FormOpen = False End Sub Private Sub House_Information_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Storage.FormOpen = True HouseChecker() End Sub Public Sub HouseChecker() If Storage.HouseNumber = 1 Then 'Home Value Storage.HomeValue = 0 + Storage.HomeUpgrade lblHouseValue.Text = Storage.HomeValue 'Address lblHouseNumber.Text = "123 W Evergreen Lane" If Storage.OwnProperty1 = True Then btnSellHouse.Visible = True btnSellHouse.Enabled = True lblSellHouse.Visible = True ElseIf Storage.OwnProperty1 = False Then btnSellHouse.Visible = False btnSellHouse.Enabled = False lblSellHouse.Visible = False End If End If End Sub Private Sub btnUpgrade_1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpgrade_1.Click If Storage.HouseNumber = 1 Then If Storage.PlayerMoney >= 1000 Then Storage.PlayerMoney -= 1000 Storage.HomeValue += 500 HouseChecker() Game_Board.UpdateMoney() End If End If End Sub End Class
Game Menu (not needed but here you go)Code:Public Class Storage Public Shared intPlayerMoney As Integer Public Shared intHouseNumber As Integer Public Shared intGameBoard As Integer Public Shared intHomeValue As Integer Public Shared intHomeUpgrade As Integer Public Shared bolOwnProperty1 As Boolean Public Shared bolOwnProperty2 As Boolean Public Shared bolOwnProperty3 As Boolean Public Shared bolOwnProperty4 As Boolean Public Shared bolOwnProperty5 As Boolean Public Shared bolOwnProperty6 As Boolean Public Shared bolNewGame As Boolean Public Shared bolFormOpen As Boolean Property PlayerMoney As Integer Get Return intPlayerMoney End Get Set(ByVal value As Integer) intPlayerMoney = value End Set End Property Property HouseNumber As Integer Get Return intHouseNumber End Get Set(ByVal value As Integer) intHouseNumber = value End Set End Property Property GameBoard As Integer Get Return intGameBoard End Get Set(ByVal value As Integer) intGameBoard = value End Set End Property Property HomeValue As Integer Get Return intHomeValue End Get Set(ByVal value As Integer) intHomeValue = value End Set End Property Property HomeUpgrade As Integer Get Return intHomeUpgrade End Get Set(ByVal value As Integer) intHomeUpgrade = value End Set End Property Property OwnProperty1 As Boolean Get Return bolOwnProperty1 End Get Set(ByVal value As Boolean) bolOwnProperty1 = value End Set End Property Property OwnProperty2 As Boolean Get Return bolOwnProperty2 End Get Set(ByVal value As Boolean) bolOwnProperty2 = value End Set End Property Property OwnProperty3 As Boolean Get Return bolOwnProperty3 End Get Set(ByVal value As Boolean) bolOwnProperty3 = value End Set End Property Property OwnProperty4 As Boolean Get Return bolOwnProperty4 End Get Set(ByVal value As Boolean) bolOwnProperty4 = value End Set End Property Property OwnProperty5 As Boolean Get Return bolOwnProperty5 End Get Set(ByVal value As Boolean) bolOwnProperty5 = value End Set End Property Property OwnProperty6 As Boolean Get Return bolOwnProperty6 End Get Set(ByVal value As Boolean) bolOwnProperty6 = value End Set End Property Property NewGame As Boolean Get Return bolNewGame End Get Set(ByVal value As Boolean) bolNewGame = value End Set End Property Property FormOpen As Boolean Get Return bolFormOpen End Get Set(ByVal value As Boolean) bolFormOpen = value End Set End Property End Class
Code:Public Class Game_Menu Private Storage As New Storage Dim GameBoard As Game_Board Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Storage.NewGame = True GameBoard = New Game_Board(Storage) Me.Close() End Sub End Class
Looking for a simple answer here. No errors but when I click on upgrade errors. Basicly a syntax error or something has a issue with me making a call to another form. I need to be able to make a call to that form to tell it to update the players money. Suggestions using the syntax Ive proveded would be very helpful thanks.




Reply With Quote