Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / Windows Forms / WinForm Controls / March 2006

Tip: Looking for answers? Try searching our database.

Object reference not set an instance of an object

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
JohnOb - 24 Mar 2006 02:43 GMT
Hi All,
I am in .NET 2003

I have a form and a toolbar on the form.
When the user clicks on a button on the toolbar I call
the following Sub

I get a crash on the last line:   tlbSearch.Buttons(0).Enabled = True
' Enable search

An unhandled exception of type "System.NullreferenceExecption" occured   etc..
...
Object Reference not set to an instance of an object

How can this be?, near the stop of the Sub  I execute:   tlbSearch.Buttons(0).
Enabled = False                  ' Disable search
with no problem. What could have happended  to the toolbar object?

I am new to objects, I come from a VB background.

Thanks in Advance,

Public Sub DoTheSearch()

  Dim intDX As Integer
  Dim Structures As New clsStructures
  Dim clsMiscProjMulti As New MiscProjectMultiTable_Handler(Permissions.
ConnectionString)
  Dim SearchDataReader As SqlClient.SqlDataReader
  Dim blnWhere As Boolean = False
  Dim TheRetrievalType As RetrievalType
  Dim NotFoundMsg As String

  Dim strSelectString = "SELECT  ProjectID,Reg,Fee,Title," & _
                                 "MiscFeeTypeID," & _
                                 "Fee, Quarter, [Year],MiscProjectStatusID,"
& _
                                 "StatusDate,Miscellaneous_Project.
Account_ID,FinalizedDate," & _
                                 "ContactEmployeeID,ContactEmail," & _
                                 "Unex_Employee.EmpFirstName + ' ' +
Unex_Employee.EmpLastName As EmpName," & _
                                 "Account.Exp_Account + '-' +  Account.
Cost_Center As ExpAcctCC " & _
                         "FROM   Miscellaneous_Project " & _
                                 "Left Outer Join Unex_Employee " & _
                                 "On  Miscellaneous_Project.
ContactEmployeeID = Unex_Employee.EmployeeID " & _
                                 "Left Outer Join Account " & _
                                 "On Miscellaneous_Project.Account_ID =
Account.Account_ID "
  '----------

  Me.Cursor = System.Windows.Forms.Cursors.WaitCursor()
 
  tlbSearch.Buttons(0).Enabled = False                        ' Disable
search - this is ok.
  menuSearch.Enabled = False

  tlbSearch.Buttons(1).Enabled = True                         ' Enable stop
  menuStop.Enabled = True

  tlbSearch.Buttons(2).Enabled = False                        ' Disable
print
  menuPrint.Enabled = False

  tlbSearch.Buttons(4).Enabled = False                        ' Disable the
create new button.
  menuCreateNew.Enabled = False                               ' Disable the
create new menu item.

  tlbSearch.Buttons(5).Enabled = False                        ' Disable Edit
  menuEdit.Enabled = False
  stsSearch.text = "Searching....."

  ' Clear the grid.

  C1FGResults.RowSel = -1
  C1FGResults.ColSel = -1

  If C1FGResults.Rows.Count > 1 Then

     For intDX = (C1FGResults.Rows.Count - 1) To 1 Step -1
         C1FGResults().Rows.Remove(intDX)
     Next

  End If

  '-----------------------------------------------

  If Me.txtRegProjID.Text = vbNullString Then

     ' look for projects using the type, Status and Deparatment
     ' build the query string, using the parameters.

     If c1cboFeeType.SelectedIndex > 0 Then
        strSelectString = strSelectString & " Where Miscellaneous_Project.
MiscFeeTypeID = " & Structures.GetComboValue(c1cboFeeType)
        blnWhere = True
     End If

     '----------

     If c1cboProjectStatus.SelectedIndex > 0 Then

        If blnWhere = False Then
           strSelectString = strSelectString & " Where "
           blnWhere = True
        Else
           strSelectString = strSelectString & " And "
        End If

        strSelectString = strSelectString & "Miscellaneous_Project.
MiscProjectStatusID = " & Structures.GetComboValue(c1cboProjectStatus)
     End If

     '----------

     If c1cboDept.SelectedIndex > 0 Then

        If blnWhere = False Then
           strSelectString = strSelectString & " Where "
           blnWhere = True
        Else
           strSelectString = strSelectString & " And "
        End If

        strSelectString = strSelectString & "Miscellaneous_Project.
Account_ID = " & Structures.GetComboValue(c1cboDept)

     End If

     '----------

     If clsMiscProjMulti.dbSelect_DataReader(strSelectString,
SearchDataReader) = True Then

        ' No errors, did we find any records?

        If SearchDataReader.HasRows = True Then

           While SearchDataReader.Read() = True
                 Call AddARow(SearchDataReader)
           End While
        Else
           Me.Cursor = System.Windows.Forms.Cursors.Default()
           MsgBox("Unable to find any projects with the parameters selected.
", MsgBoxStyle.Information + MsgBoxStyle.OKOnly, "Not Found.")
        End If
     Else
        Me.Cursor = System.Windows.Forms.Cursors.Default()
        Dim err As New errorHandler(clsMiscProjMulti.lastException, "", True)

     End If

  Else

     ' Did the user enter a project Id or a Reg number?

     If IsNumeric(Mid(txtRegProjID.Text, 1, 1)) Then
        strSelectString = strSelectString & " Where ProjectID = " & Trim$
(txtRegProjID.Text)
        TheRetrievalType = RetrievalType.ProjectID
     Else
        ' the user entered a reg number.
        strSelectString = strSelectString & " Where Reg = '" & Trim$
(txtRegProjID.Text) & "'"
        TheRetrievalType = RetrievalType.RegNumber
     End If

     ' do the read.

     If clsMiscProjMulti.dbSelect_DataReader(strSelectString,
SearchDataReader) = True Then

        ' No errors, did we find any records?

        If SearchDataReader.HasRows = True Then
           SearchDataReader.Read()
           Call AddARow(SearchDataReader)
        Else
           Me.Cursor = System.Windows.Forms.Cursors.Default()

           If TheRetrievalType = RetrievalType.ProjectID Then
              NotFoundMsg = "Project ID of : " & Trim$(txtRegProjID.Text)
           Else
              NotFoundMsg = "Reg Number of : " & Trim$(txtRegProjID.Text)
           End If

           MsgBox("Unable to find a project with a " & NotFoundMsg,
MsgBoxStyle.Information + MsgBoxStyle.OKOnly, "Not Found.")
         End If

     Else
        Me.Cursor = System.Windows.Forms.Cursors.Default()
        Dim err As New errorHandler(clsMiscProjMulti.lastException, "", True)

     End If

  End If

  '-------------------------------------------------------

  Me.Cursor = System.Windows.Forms.Cursors.Default()

  tlbSearch.Buttons(0).Enabled = True                         ' Enable
search
Claes Bergefall - 24 Mar 2006 16:19 GMT
What object is giving the exception? Is it the button (Buttons(0)) or the
entire toolbar?
I would add both tlbSearch and tlbSearch.Buttons(0) to the watch window and
then step through the entire method and see if either of them changes
somewhere. It looks like some method that you call modifies the toolbar.

   /claes

> Hi All,
> I am in .NET 2003
[quoted text clipped - 213 lines]
>   tlbSearch.Buttons(0).Enabled = True                         ' Enable
> search
JohnOb - 27 Mar 2006 18:35 GMT
Thank you for the suggestion,
I did what you said, and found out what was going wrong.
In one of the procs I called, I was causing the form the be closed,
(unloaded), this was causing the toolbar buttons object collection to not
exist.

Thanks Again

>What object is giving the exception? Is it the button (Buttons(0)) or the
>entire toolbar?
[quoted text clipped - 9 lines]
>>   tlbSearch.Buttons(0).Enabled = True                         ' Enable
>> search

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.