2011-02-15 2 views
1

Видишь, где проблема? Код будет работать с frmFacility и сместится в UserControl:Исключение Null Refrence при работе с свойствами

Public Class frmFacility 
Private primaryBaseDay As Date 
Private isClassPrimaryView As Boolean = False 
Friend WithEvents BookCtrl As ucBookCtrl2 
Public Property Primary_BaseDay() As Date 
    Get 
     Return primaryBaseDay 
    End Get 
    Set(ByVal value As Date) 
     primaryBaseDay = value 
    End Set 
    End Property 

    Public Property IsOnPrimaryView() As Boolean 
    Get 
     Return isClassPrimaryView 
    End Get 
    Set(ByVal value As Boolean) 
     isClassPrimaryView = value 
    End Set 
    End Property 
Public Sub GotoDay(ByVal theDay As Date) 
    Primary_BaseDay = theDay 
    IsOnPrimaryView = True 
    BookCtrl.GotoDay(theDay) 
End Sub 
End Class 

    Imports frmFacility 
Public Class ucBookCtrl2 
Public Sub GotoDay(ByVal whichDay As Date, Optional ByVal MainFacilityUsed As String = "") 
Dim facilityForm As frmFacility 
If facilityForm.IsOnPrimaryView Then 
     moDoBooking.m_BaseDay = facilityForm.Primary_BaseDay 
     moDoBooking.m_CurrentDay = whichDay 
     ShowDay() 
     RaiseEvent ChangeOfDay() 
End Sub 
End Class 

На линии If facilityForm.IsOnPrimaryView Then, я получаю NullReferenceException. Вы знаете причину?

Кроме того, я не могу создать новый экземпляр facilityForm, так как мне нужно работать с одноэлементным, хотя, когда я добавить новый экземпляр frmFacility, то IsOnPrimaryMode устанавливаются на false в то время как он должен быть установлен в true в gotoday от frmFacility.

ответ

3

Вы не указали номер facilityForm на все, вы просто объявили переменную типа frmFacility и назвали ее facilityForm. Когда вы пытаетесь позвонить по номеру facilityForm.IsOnPrimaryView, facilityForm по-прежнему null.

+0

Хорошо, спасибо anna, но дело в том, когда я создаю новый экземпляр, он не установлен в true, пока он должен быть, что на самом деле не так? – amir

+0

@amir Вам, вероятно, придется передать существующий экземпляр 'frmFacility' в этот метод или выставить его через свойство в том же классе. –

1

На самом деле вы не работаете с объектом Singleton. Вам нужно будет его где-то хранить. Возможно, Public Class с Shared test as New frmFacility.

Форма еще не может иметь свойство IsOnPrimaryView, поскольку она не установлена. Это практически Nothing

0

Вам необходимо установить свойство IsOnPrimaryView как общее, иначе вы получите исключение NullReference.

Смежные вопросы