Исключение Null Refrence при работе со свойствами - PullRequest
1 голос
/ 15 февраля 2011

Вы видите, в чем проблема? Код будет выполняться из frmFacility и перейдет в UserControl:

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 ]

3 голосов
/ 15 февраля 2011

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

1 голос
/ 15 февраля 2011

Вы на самом деле не работаете с синглтоном ToolForm.Вы должны будете хранить это где-нибудь.Может быть, Public Class с Shared test as New frmFacility.

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

0 голосов
/ 15 февраля 2011

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

...