473,473 Members | 2,017 Online
Bytes | Software Development & Data Engineering Community
Create Post

Home Posts Topics Members FAQ

Problem calling a Sub in another form

Hello.

I have 2 forms (Form1 and Form2). When i call the Sub placed in form1 from
form2, i get the error "object reference not set to an instance of an object"
!
What can i do to solve the problem?

Thanks
Sep 21 '06 #1
20 4780
Please post the code that calls the sub.

Thanks,

Seth Rowe

vitorjol wrote:
Hello.

I have 2 forms (Form1 and Form2). When i call the Sub placed in form1 from
form2, i get the error "object reference not set to an instance of an object"
!
What can i do to solve the problem?

Thanks
Sep 21 '06 #2
Here is the code:

' the code in form2
Private Sub DataGridView1_RowHeaderMouseClick(ByVal sender As Object, ByVal
e As System.Windows.Forms.DataGridViewCellMouseEventArg s) Handles
DataGridView1.RowHeaderMouseClick
dim exitvar as Integer
exitvar = DataGridView1.Rows(e.RowIndex).Cells(0).Value
Dim ff As New Form1
ff.BringToFront()
ff.soumavez(exitvar) ' this is the call to the sub in Form1
End Sub

"rowe_newsgroups" wrote:
Please post the code that calls the sub.

Thanks,

Seth Rowe

vitorjol wrote:
Hello.

I have 2 forms (Form1 and Form2). When i call the Sub placed in form1 from
form2, i get the error "object reference not set to an instance of an object"
!
What can i do to solve the problem?

Thanks

Sep 21 '06 #3
Looks like it should work, when you step through the code where does
the exception occur? If the error occurs in somewhere other than this
sub please post that code too. Also what does "soumavez" mean?

Thanks,

Seth Rowe
vitorjol wrote:
Here is the code:

' the code in form2
Private Sub DataGridView1_RowHeaderMouseClick(ByVal sender As Object, ByVal
e As System.Windows.Forms.DataGridViewCellMouseEventArg s) Handles
DataGridView1.RowHeaderMouseClick
dim exitvar as Integer
exitvar = DataGridView1.Rows(e.RowIndex).Cells(0).Value
Dim ff As New Form1
ff.BringToFront()
ff.soumavez(exitvar) ' this is the call to the sub in Form1
End Sub

"rowe_newsgroups" wrote:
Please post the code that calls the sub.

Thanks,

Seth Rowe

vitorjol wrote:
Hello.
>
I have 2 forms (Form1 and Form2). When i call the Sub placed in form1 from
form2, i get the error "object reference not set to an instance of an object"
!
What can i do to solve the problem?
>
Thanks
Sep 21 '06 #4
ok....the name "soumavez" its a name that i called to the Sub...End Sub.

i put here the code of Sub(its about the Mapguide ActiveX to show a map in
VB). I'll send there to Sub in the other form the id of a polygon on the map,
and then the Sub localize the polygon and zoom the place!!!

Code of the Sub "soumavez" in the Form1:

Public Sub soumavez(ByVal varin As Integer)
' --->"varin" its the var that i send from Form2!!!
' --->"mgmap" its the name of the control (mapguide activex)
Try
Dim pubmapsel As MGMapControl.MGSelection
Dim pubvar2 As MGMapControl.MGMapLayer
Dim pubmapobjectos As MGMapControl.MGCollection
Dim pubmapobj As MGMapControl.MGMapObject
pubmapsel = mgmap.getSelection()
pubvar2 = mgmap.getMapLayer("SIG")
pubmapobjectos = mgmap.createObject("MGCollection")
pubmapobj = pubvar2.getMapObject(varin)
pubmapobjectos.add(pubmapobj)
pubmapsel.addObjectsEx(pubmapobjectos, False)
mgmap.zoomSelected()
mgmap.zoomScale(mgmap.getLat(), mgmap.getLon(), 1500)
mgmap.refresh()
Catch ex As Exception
MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK,
MessageBoxIcon.Error)
End Try
End Sub
"rowe_newsgroups" wrote:
Looks like it should work, when you step through the code where does
the exception occur? If the error occurs in somewhere other than this
sub please post that code too. Also what does "soumavez" mean?

Thanks,

Seth Rowe
vitorjol wrote:
Here is the code:

' the code in form2
Private Sub DataGridView1_RowHeaderMouseClick(ByVal sender As Object, ByVal
e As System.Windows.Forms.DataGridViewCellMouseEventArg s) Handles
DataGridView1.RowHeaderMouseClick
dim exitvar as Integer
exitvar = DataGridView1.Rows(e.RowIndex).Cells(0).Value
Dim ff As New Form1
ff.BringToFront()
ff.soumavez(exitvar) ' this is the call to the sub in Form1
End Sub

"rowe_newsgroups" wrote:
Please post the code that calls the sub.
>
Thanks,
>
Seth Rowe
>
vitorjol wrote:
Hello.

I have 2 forms (Form1 and Form2). When i call the Sub placed in form1 from
form2, i get the error "object reference not set to an instance of an object"
!
What can i do to solve the problem?

Thanks
>
>

Sep 21 '06 #5
ok....the name "soumavez" its a name that i called to the Sub...End Sub.

It looked like a foreign langauge to me (is it?), so I was just making
sure it was a protected keyword in a foreign language edition of visual
studio.

Anyways, I have to apologize - my "visual" debugging skills must be
lacking today, as I still don't see anything obviously wrong. Which
line of the code raises the exception?

Thanks,

Seth Rowe
vitorjol wrote:
>
i put here the code of Sub(its about the Mapguide ActiveX to show a map in
VB). I'll send there to Sub in the other form the id of a polygon on the map,
and then the Sub localize the polygon and zoom the place!!!

Code of the Sub "soumavez" in the Form1:

Public Sub soumavez(ByVal varin As Integer)
' --->"varin" its the var that i send from Form2!!!
' --->"mgmap" its the name of the control (mapguide activex)
Try
Dim pubmapsel As MGMapControl.MGSelection
Dim pubvar2 As MGMapControl.MGMapLayer
Dim pubmapobjectos As MGMapControl.MGCollection
Dim pubmapobj As MGMapControl.MGMapObject
pubmapsel = mgmap.getSelection()
pubvar2 = mgmap.getMapLayer("SIG")
pubmapobjectos = mgmap.createObject("MGCollection")
pubmapobj = pubvar2.getMapObject(varin)
pubmapobjectos.add(pubmapobj)
pubmapsel.addObjectsEx(pubmapobjectos, False)
mgmap.zoomSelected()
mgmap.zoomScale(mgmap.getLat(), mgmap.getLon(), 1500)
mgmap.refresh()
Catch ex As Exception
MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK,
MessageBoxIcon.Error)
End Try
End Sub
"rowe_newsgroups" wrote:
Looks like it should work, when you step through the code where does
the exception occur? If the error occurs in somewhere other than this
sub please post that code too. Also what does "soumavez" mean?

Thanks,

Seth Rowe
vitorjol wrote:
Here is the code:
>
' the code in form2
Private Sub DataGridView1_RowHeaderMouseClick(ByVal sender As Object, ByVal
e As System.Windows.Forms.DataGridViewCellMouseEventArg s) Handles
DataGridView1.RowHeaderMouseClick
dim exitvar as Integer
exitvar = DataGridView1.Rows(e.RowIndex).Cells(0).Value
Dim ff As New Form1
ff.BringToFront()
ff.soumavez(exitvar) ' this is the call to the sub in Form1
End Sub
>
"rowe_newsgroups" wrote:
>
Please post the code that calls the sub.

Thanks,

Seth Rowe

vitorjol wrote:
Hello.
>
I have 2 forms (Form1 and Form2). When i call the Sub placed in form1 from
form2, i get the error "object reference not set to an instance of an object"
!
What can i do to solve the problem?
>
Thanks
Sep 21 '06 #6
Yes....im portuguese....but I love America!!!!!

i forgot to tell U the line with the problem!!!Sorry

So, the problem "object reference not set to an instance of an object"
occurs in the line >>pubmapobj = pubvar2.getMapObject(varin)

Thanks
"rowe_newsgroups" wrote:
ok....the name "soumavez" its a name that i called to the Sub...End Sub.

It looked like a foreign langauge to me (is it?), so I was just making
sure it was a protected keyword in a foreign language edition of visual
studio.

Anyways, I have to apologize - my "visual" debugging skills must be
lacking today, as I still don't see anything obviously wrong. Which
line of the code raises the exception?

Thanks,

Seth Rowe
vitorjol wrote:

i put here the code of Sub(its about the Mapguide ActiveX to show a map in
VB). I'll send there to Sub in the other form the id of a polygon on the map,
and then the Sub localize the polygon and zoom the place!!!

Code of the Sub "soumavez" in the Form1:

Public Sub soumavez(ByVal varin As Integer)
' --->"varin" its the var that i send from Form2!!!
' --->"mgmap" its the name of the control (mapguide activex)
Try
Dim pubmapsel As MGMapControl.MGSelection
Dim pubvar2 As MGMapControl.MGMapLayer
Dim pubmapobjectos As MGMapControl.MGCollection
Dim pubmapobj As MGMapControl.MGMapObject
pubmapsel = mgmap.getSelection()
pubvar2 = mgmap.getMapLayer("SIG")
pubmapobjectos = mgmap.createObject("MGCollection")
pubmapobj = pubvar2.getMapObject(varin)
pubmapobjectos.add(pubmapobj)
pubmapsel.addObjectsEx(pubmapobjectos, False)
mgmap.zoomSelected()
mgmap.zoomScale(mgmap.getLat(), mgmap.getLon(), 1500)
mgmap.refresh()
Catch ex As Exception
MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK,
MessageBoxIcon.Error)
End Try
End Sub
"rowe_newsgroups" wrote:
Looks like it should work, when you step through the code where does
the exception occur? If the error occurs in somewhere other than this
sub please post that code too. Also what does "soumavez" mean?
>
Thanks,
>
Seth Rowe
>
>
vitorjol wrote:
Here is the code:

' the code in form2
Private Sub DataGridView1_RowHeaderMouseClick(ByVal sender As Object, ByVal
e As System.Windows.Forms.DataGridViewCellMouseEventArg s) Handles
DataGridView1.RowHeaderMouseClick
dim exitvar as Integer
exitvar = DataGridView1.Rows(e.RowIndex).Cells(0).Value
Dim ff As New Form1
ff.BringToFront()
ff.soumavez(exitvar) ' this is the call to the sub in Form1
End Sub

"rowe_newsgroups" wrote:

Please post the code that calls the sub.
>
Thanks,
>
Seth Rowe
>
vitorjol wrote:
Hello.

I have 2 forms (Form1 and Form2). When i call the Sub placed in form1 from
form2, i get the error "object reference not set to an instance of an object"
!
What can i do to solve the problem?

Thanks
>
>
>
>

Sep 21 '06 #7
Hmm. The "object reference not set to an instance of an object"
exception is raised when you try to use an object that doesn't exist
yet, like if you left out the New keyword. However, everything looks
alright to me. The only thing I would try (outside of praying that
someone else happens on this thread and sees what we're missing!) is to
change this line:
>pubmapobj = pubvar2.getMapObject(varin)
To this:

pubmapobj = MGMapControl.MGMapLayer.getMapObject(varin)

That will take the pubvar2 variable out of the equation. Note, you may
also try throwing the "New" keyword into that line, I'm not sure if
you do or don't need it.

Hope that helps,

Seth Rowe

vitorjol wrote:
Yes....im portuguese....but I love America!!!!!

i forgot to tell U the line with the problem!!!Sorry

So, the problem "object reference not set to an instance of an object"
occurs in the line >>pubmapobj = pubvar2.getMapObject(varin)

Thanks
"rowe_newsgroups" wrote:
ok....the name "soumavez" its a name that i called to the Sub...End Sub.
It looked like a foreign langauge to me (is it?), so I was just making
sure it was a protected keyword in a foreign language edition of visual
studio.

Anyways, I have to apologize - my "visual" debugging skills must be
lacking today, as I still don't see anything obviously wrong. Which
line of the code raises the exception?

Thanks,

Seth Rowe
vitorjol wrote:
>
i put here the code of Sub(its about the Mapguide ActiveX to show a map in
VB). I'll send there to Sub in the other form the id of a polygon on the map,
and then the Sub localize the polygon and zoom the place!!!
>
Code of the Sub "soumavez" in the Form1:
>
Public Sub soumavez(ByVal varin As Integer)
' --->"varin" its the var that i send from Form2!!!
' --->"mgmap" its the name of the control (mapguide activex)
Try
Dim pubmapsel As MGMapControl.MGSelection
Dim pubvar2 As MGMapControl.MGMapLayer
Dim pubmapobjectos As MGMapControl.MGCollection
Dim pubmapobj As MGMapControl.MGMapObject
pubmapsel = mgmap.getSelection()
pubvar2 = mgmap.getMapLayer("SIG")
pubmapobjectos = mgmap.createObject("MGCollection")
pubmapobj = pubvar2.getMapObject(varin)
pubmapobjectos.add(pubmapobj)
pubmapsel.addObjectsEx(pubmapobjectos, False)
mgmap.zoomSelected()
mgmap.zoomScale(mgmap.getLat(), mgmap.getLon(), 1500)
mgmap.refresh()
Catch ex As Exception
MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK,
MessageBoxIcon.Error)
End Try
End Sub
>
>
"rowe_newsgroups" wrote:
>
Looks like it should work, when you step through the code where does
the exception occur? If the error occurs in somewhere other than this
sub please post that code too. Also what does "soumavez" mean?

Thanks,

Seth Rowe


vitorjol wrote:
Here is the code:
>
' the code in form2
Private Sub DataGridView1_RowHeaderMouseClick(ByVal sender As Object, ByVal
e As System.Windows.Forms.DataGridViewCellMouseEventArg s) Handles
DataGridView1.RowHeaderMouseClick
dim exitvar as Integer
exitvar = DataGridView1.Rows(e.RowIndex).Cells(0).Value
Dim ff As New Form1
ff.BringToFront()
ff.soumavez(exitvar) ' this is the call to the sub in Form1
End Sub
>
"rowe_newsgroups" wrote:
>
Please post the code that calls the sub.

Thanks,

Seth Rowe

vitorjol wrote:
Hello.
>
I have 2 forms (Form1 and Form2). When i call the Sub placed in form1 from
form2, i get the error "object reference not set to an instance of an object"
!
What can i do to solve the problem?
>
Thanks


Sep 21 '06 #8
Hello rowe_newsgroups,

Your solutuion would not work. MGMapControl is the namespace.. MGMapLayer
is the type. getMapObject is not static (shared).
pubvar2 (GEEZ! Use some better freakin names next time wouldja, OP!) is
supposed to grab a reference to a specific map layer.

You are correct in that the OP is trying to use an object that is null.

OP: Check your MWF, make sure you have a layer actually called "SIG". Also,
ZoomSelected is a terrible way to get to an object. First, the selection
will only succeed if the object is visible at your current zoom scale. Second,
MapGuide is notorious for busystate collisions.

-Boo
Hmm. The "object reference not set to an instance of an object"
exception is raised when you try to use an object that doesn't exist
yet, like if you left out the New keyword. However, everything looks
alright to me. The only thing I would try (outside of praying that
someone else happens on this thread and sees what we're missing!) is
to change this line:
>pubmapobj = pubvar2.getMapObject(varin)
To this:

pubmapobj = MGMapControl.MGMapLayer.getMapObject(varin)

That will take the pubvar2 variable out of the equation. Note, you may
also try throwing the "New" keyword into that line, I'm not sure if
you do or don't need it.

Hope that helps,

Seth Rowe

vitorjol wrote:
>Yes....im portuguese....but I love America!!!!!

i forgot to tell U the line with the problem!!!Sorry

So, the problem "object reference not set to an instance of an
object" occurs in the line >>pubmapobj = pubvar2.getMapObject(varin)

Thanks

"rowe_newsgroups" wrote:
>>>ok....the name "soumavez" its a name that i called to the Sub...End
Sub.

It looked like a foreign langauge to me (is it?), so I was just
making sure it was a protected keyword in a foreign language edition
of visual studio.

Anyways, I have to apologize - my "visual" debugging skills must be
lacking today, as I still don't see anything obviously wrong. Which
line of the code raises the exception?

Thanks,

Seth Rowe

vitorjol wrote:

i put here the code of Sub(its about the Mapguide ActiveX to show a
map in VB). I'll send there to Sub in the other form the id of a
polygon on the map, and then the Sub localize the polygon and zoom
the place!!!

Code of the Sub "soumavez" in the Form1:

Public Sub soumavez(ByVal varin As Integer)
' --->"varin" its the var that i send from Form2!!!
' --->"mgmap" its the name of the control (mapguide activex)
Try
Dim pubmapsel As MGMapControl.MGSelection
Dim pubvar2 As MGMapControl.MGMapLayer
Dim pubmapobjectos As MGMapControl.MGCollection
Dim pubmapobj As MGMapControl.MGMapObject
pubmapsel = mgmap.getSelection()
pubvar2 = mgmap.getMapLayer("SIG")
pubmapobjectos = mgmap.createObject("MGCollection")
pubmapobj = pubvar2.getMapObject(varin)
pubmapobjectos.add(pubmapobj)
pubmapsel.addObjectsEx(pubmapobjectos, False)
mgmap.zoomSelected()
mgmap.zoomScale(mgmap.getLat(), mgmap.getLon(), 1500)
mgmap.refresh()
Catch ex As Exception
MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK,
MessageBoxIcon.Error)
End Try
End Sub
"rowe_newsgroups" wrote:

Looks like it should work, when you step through the code where
does the exception occur? If the error occurs in somewhere other
than this sub please post that code too. Also what does "soumavez"
mean?
>
Thanks,
>
Seth Rowe
>
vitorjol wrote:
>
>Here is the code:
>>
>' the code in form2
>Private Sub DataGridView1_RowHeaderMouseClick(ByVal sender As
>Object, ByVal
>e As System.Windows.Forms.DataGridViewCellMouseEventArg s) Handles
>DataGridView1.RowHeaderMouseClick
>dim exitvar as Integer
>exitvar = DataGridView1.Rows(e.RowIndex).Cells(0).Value
>Dim ff As New Form1
>ff.BringToFront()
>ff.soumavez(exitvar) ' this is the call to the sub in Form1
>End Sub
>"rowe_newsgroups" wrote:
>>
>>Please post the code that calls the sub.
>>>
>>Thanks,
>>>
>>Seth Rowe
>>>
>>vitorjol wrote:
>>>
>>>Hello.
>>>>
>>>I have 2 forms (Form1 and Form2). When i call the Sub placed in
>>>form1 from
>>>form2, i get the error "object reference not set to an instance
>>>of an object"
>>>!
>>>What can i do to solve the problem?
>>>Thanks
>>>>

Sep 22 '06 #9
What I see is that you do not show the form BringToFront does not make
a control a top-level control, and it does not raise the Paint event.

So with the knowledge of the last post, try following

- Check, if you can run the sub from form2 alone. Implement a button to
show what you want and make a test like this.
- If this does not work, first correct the sub until you are able to
let it run.
- After that, first show the new form and then let sub run from
form1...

Daniel

Sep 22 '06 #10

Daniel Bloch schrieb:
What I see is that you do not show the form BringToFront does not make
a control a top-level control, and it does not raise the Paint event.

So with the knowledge of the last post, try following

- Check, if you can run the sub from form2 alone. Implement a button to
show what you want and make a test like this.
- If this does not work, first correct the sub until you are able to
let it run.
- After that, first show the new form and then let sub run from
form1...

Daniel
Sorry, I did a mistake and mixed form1 and form2 :)

Sep 22 '06 #11
The SUB in form2:

Public Sub soumavez(ByVal varin As Integer)
Try
MessageBox.Show(varin)
Dim pubmapsel As MGMapControl.MGSelection
Dim pubvar2 As MGMapControl.MGMapLayer
Dim pubmapobjectos As MGMapControl.MGCollection
Dim pubmapobj As MGMapControl.MGMapObject
pubmapsel = mgmap.getSelection()
pubvar2 = mgmap.getMapLayer("SIG")
pubmapobjectos = mgmap.createObject("MGCollection")
pubmapobj = mgmap.getMapLayer("SIG").getMapObject(varin)
pubmapobjectos.add(pubmapobj)
mgmap.getSelection().addObjectsEx(pubmapobjectos, False)
mgmap.zoomSelected()
mgmap.zoomScale(mgmap.getLat(), mgmap.getLon(), 1500)
mgmap.refresh()
Catch ex As Exception
MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK,
MessageBoxIcon.Error)
End Try

End Sub
this sub is called form Form2 with the following code:

exitvar = DataGridView1.Rows(e.RowIndex).Cells(0).Value
Dim ff As New Form1
ff.BringToFront()
ff.soumavez(exitvar)

PROBLEM:

if i dont put the codeline "MessageBox.Show(varin)", occurs the error at
line "pubmapobj = mgmap.getMapLayer("SIG").getMapObject(varin)".
If i put the message "MessageBox.Show(varin)", occurs the error at line
"mgmap.getSelection().addObjectsEx(pubmapobjec tos, False)".

the test that u say to do (call the sub from a buttonclick within Form1)
occurs with NO Error!!!!

Thanks

"Daniel Bloch" wrote:
>
Daniel Bloch schrieb:
What I see is that you do not show the form BringToFront does not make
a control a top-level control, and it does not raise the Paint event.

So with the knowledge of the last post, try following

- Check, if you can run the sub from form2 alone. Implement a button to
show what you want and make a test like this.
- If this does not work, first correct the sub until you are able to
let it run.
- After that, first show the new form and then let sub run from
form1...

Daniel

Sorry, I did a mistake and mixed form1 and form2 :)

Sep 22 '06 #12
Resume my problem:
if i call the Sub located in Form1 from Form1 i get no error. If i call the
Sub from Form2 i get error. Why?

Thanks

"vitorjol" wrote:
The SUB in form2:

Public Sub soumavez(ByVal varin As Integer)
Try
MessageBox.Show(varin)
Dim pubmapsel As MGMapControl.MGSelection
Dim pubvar2 As MGMapControl.MGMapLayer
Dim pubmapobjectos As MGMapControl.MGCollection
Dim pubmapobj As MGMapControl.MGMapObject
pubmapsel = mgmap.getSelection()
pubvar2 = mgmap.getMapLayer("SIG")
pubmapobjectos = mgmap.createObject("MGCollection")
pubmapobj = mgmap.getMapLayer("SIG").getMapObject(varin)
pubmapobjectos.add(pubmapobj)
mgmap.getSelection().addObjectsEx(pubmapobjectos, False)
mgmap.zoomSelected()
mgmap.zoomScale(mgmap.getLat(), mgmap.getLon(), 1500)
mgmap.refresh()
Catch ex As Exception
MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK,
MessageBoxIcon.Error)
End Try

End Sub
this sub is called form Form2 with the following code:

exitvar = DataGridView1.Rows(e.RowIndex).Cells(0).Value
Dim ff As New Form1
ff.BringToFront()
ff.soumavez(exitvar)

PROBLEM:

if i dont put the codeline "MessageBox.Show(varin)", occurs the error at
line "pubmapobj = mgmap.getMapLayer("SIG").getMapObject(varin)".
If i put the message "MessageBox.Show(varin)", occurs the error at line
"mgmap.getSelection().addObjectsEx(pubmapobjec tos, False)".

the test that u say to do (call the sub from a buttonclick within Form1)
occurs with NO Error!!!!

Thanks

"Daniel Bloch" wrote:

Daniel Bloch schrieb:
What I see is that you do not show the form BringToFront does not make
a control a top-level control, and it does not raise the Paint event.
>
So with the knowledge of the last post, try following
>
- Check, if you can run the sub from form2 alone. Implement a button to
show what you want and make a test like this.
- If this does not work, first correct the sub until you are able to
let it run.
- After that, first show the new form and then let sub run from
form1...
>
Daniel
Sorry, I did a mistake and mixed form1 and form2 :)
Sep 22 '06 #13
Thanks for coming to my rescue here Ghost, with no experience using
Mapguide (and not having it's SDK) I was getting in over my head!

Thanks,

Seth Rowe

GhostInAK wrote:
Hello rowe_newsgroups,

Your solutuion would not work. MGMapControl is the namespace.. MGMapLayer
is the type. getMapObject is not static (shared).
pubvar2 (GEEZ! Use some better freakin names next time wouldja, OP!) is
supposed to grab a reference to a specific map layer.

You are correct in that the OP is trying to use an object that is null.

OP: Check your MWF, make sure you have a layer actually called "SIG". Also,
ZoomSelected is a terrible way to get to an object. First, the selection
will only succeed if the object is visible at your current zoom scale. Second,
MapGuide is notorious for busystate collisions.

-Boo
Hmm. The "object reference not set to an instance of an object"
exception is raised when you try to use an object that doesn't exist
yet, like if you left out the New keyword. However, everything looks
alright to me. The only thing I would try (outside of praying that
someone else happens on this thread and sees what we're missing!) is
to change this line:
pubmapobj = pubvar2.getMapObject(varin)
To this:

pubmapobj = MGMapControl.MGMapLayer.getMapObject(varin)

That will take the pubvar2 variable out of the equation. Note, you may
also try throwing the "New" keyword into that line, I'm not sure if
you do or don't need it.

Hope that helps,

Seth Rowe

vitorjol wrote:
Yes....im portuguese....but I love America!!!!!

i forgot to tell U the line with the problem!!!Sorry

So, the problem "object reference not set to an instance of an
object" occurs in the line >>pubmapobj = pubvar2.getMapObject(varin)

Thanks

"rowe_newsgroups" wrote:

ok....the name "soumavez" its a name that i called to the Sub...End
Sub.

It looked like a foreign langauge to me (is it?), so I was just
making sure it was a protected keyword in a foreign language edition
of visual studio.

Anyways, I have to apologize - my "visual" debugging skills must be
lacking today, as I still don't see anything obviously wrong. Which
line of the code raises the exception?

Thanks,

Seth Rowe

vitorjol wrote:

i put here the code of Sub(its about the Mapguide ActiveX to show a
map in VB). I'll send there to Sub in the other form the id of a
polygon on the map, and then the Sub localize the polygon and zoom
the place!!!

Code of the Sub "soumavez" in the Form1:

Public Sub soumavez(ByVal varin As Integer)
' --->"varin" its the var that i send from Form2!!!
' --->"mgmap" its the name of the control (mapguide activex)
Try
Dim pubmapsel As MGMapControl.MGSelection
Dim pubvar2 As MGMapControl.MGMapLayer
Dim pubmapobjectos As MGMapControl.MGCollection
Dim pubmapobj As MGMapControl.MGMapObject
pubmapsel = mgmap.getSelection()
pubvar2 = mgmap.getMapLayer("SIG")
pubmapobjectos = mgmap.createObject("MGCollection")
pubmapobj = pubvar2.getMapObject(varin)
pubmapobjectos.add(pubmapobj)
pubmapsel.addObjectsEx(pubmapobjectos, False)
mgmap.zoomSelected()
mgmap.zoomScale(mgmap.getLat(), mgmap.getLon(), 1500)
mgmap.refresh()
Catch ex As Exception
MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK,
MessageBoxIcon.Error)
End Try
End Sub
"rowe_newsgroups" wrote:

Looks like it should work, when you step through the code where
does the exception occur? If the error occurs in somewhere other
than this sub please post that code too. Also what does "soumavez"
mean?

Thanks,

Seth Rowe

vitorjol wrote:

Here is the code:
>
' the code in form2
Private Sub DataGridView1_RowHeaderMouseClick(ByVal sender As
Object, ByVal
e As System.Windows.Forms.DataGridViewCellMouseEventArg s) Handles
DataGridView1.RowHeaderMouseClick
dim exitvar as Integer
exitvar = DataGridView1.Rows(e.RowIndex).Cells(0).Value
Dim ff As New Form1
ff.BringToFront()
ff.soumavez(exitvar) ' this is the call to the sub in Form1
End Sub
"rowe_newsgroups" wrote:
>
>Please post the code that calls the sub.
>>
>Thanks,
>>
>Seth Rowe
>>
>vitorjol wrote:
>>
>>Hello.
>>>
>>I have 2 forms (Form1 and Form2). When i call the Sub placed in
>>form1 from
>>form2, i get the error "object reference not set to an instance
>>of an object"
>>!
>>What can i do to solve the problem?
>>Thanks
>>>
Sep 22 '06 #14
Hello rowe_newsgroups,

I envy you, Seth. I have to use the abismal peice of crap every day.

-Boo
Thanks for coming to my rescue here Ghost, with no experience using
Mapguide (and not having it's SDK) I was getting in over my head!

Thanks,

Seth Rowe

GhostInAK wrote:
>Hello rowe_newsgroups,

Your solutuion would not work. MGMapControl is the namespace..
MGMapLayer
is the type. getMapObject is not static (shared).
pubvar2 (GEEZ! Use some better freakin names next time wouldja, OP!)
is
supposed to grab a reference to a specific map layer.
You are correct in that the OP is trying to use an object that is
null.

OP: Check your MWF, make sure you have a layer actually called
"SIG". Also,
ZoomSelected is a terrible way to get to an object. First, the
selection
will only succeed if the object is visible at your current zoom
scale. Second,
MapGuide is notorious for busystate collisions.
-Boo
>>Hmm. The "object reference not set to an instance of an object"
exception is raised when you try to use an object that doesn't exist
yet, like if you left out the New keyword. However, everything looks
alright to me. The only thing I would try (outside of praying that
someone else happens on this thread and sees what we're missing!) is
to change this line:

pubmapobj = pubvar2.getMapObject(varin)

To this:

pubmapobj = MGMapControl.MGMapLayer.getMapObject(varin)

That will take the pubvar2 variable out of the equation. Note, you
may also try throwing the "New" keyword into that line, I'm not
sure if you do or don't need it.

Hope that helps,

Seth Rowe

vitorjol wrote:

Yes....im portuguese....but I love America!!!!!

i forgot to tell U the line with the problem!!!Sorry

So, the problem "object reference not set to an instance of an
object" occurs in the line >>pubmapobj =
pubvar2.getMapObject(varin)

Thanks

"rowe_newsgroups" wrote:

>ok....the name "soumavez" its a name that i called to the
>Sub...End Sub.
>>
It looked like a foreign langauge to me (is it?), so I was just
making sure it was a protected keyword in a foreign language
edition of visual studio.
>
Anyways, I have to apologize - my "visual" debugging skills must
be lacking today, as I still don't see anything obviously wrong.
Which line of the code raises the exception?
>
Thanks,
>
Seth Rowe
>
vitorjol wrote:
>
>i put here the code of Sub(its about the Mapguide ActiveX to show
>a map in VB). I'll send there to Sub in the other form the id of
>a polygon on the map, and then the Sub localize the polygon and
>zoom the place!!!
>>
>Code of the Sub "soumavez" in the Form1:
>>
>Public Sub soumavez(ByVal varin As Integer)
>' --->"varin" its the var that i send from Form2!!!
>' --->"mgmap" its the name of the control (mapguide activex)
>Try
>Dim pubmapsel As MGMapControl.MGSelection
>Dim pubvar2 As MGMapControl.MGMapLayer
>Dim pubmapobjectos As MGMapControl.MGCollection
>Dim pubmapobj As MGMapControl.MGMapObject
>pubmapsel = mgmap.getSelection()
>pubvar2 = mgmap.getMapLayer("SIG")
>pubmapobjectos = mgmap.createObject("MGCollection")
>pubmapobj = pubvar2.getMapObject(varin)
>pubmapobjectos.add(pubmapobj)
>pubmapsel.addObjectsEx(pubmapobjectos, False)
>mgmap.zoomSelected()
>mgmap.zoomScale(mgmap.getLat(), mgmap.getLon(), 1500)
>mgmap.refresh()
>Catch ex As Exception
>MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK,
>MessageBoxIcon.Error)
>End Try
>End Sub
>"rowe_newsgroups" wrote:
>>Looks like it should work, when you step through the code where
>>does the exception occur? If the error occurs in somewhere
>>other than this sub please post that code too. Also what does
>>"soumavez" mean?
>>>
>>Thanks,
>>>
>>Seth Rowe
>>>
>>vitorjol wrote:
>>>
>>>Here is the code:
>>>>
>>>' the code in form2
>>>Private Sub DataGridView1_RowHeaderMouseClick(ByVal sender As
>>>Object, ByVal
>>>e As System.Windows.Forms.DataGridViewCellMouseEventArg s)
>>>Handles
>>>DataGridView1.RowHeaderMouseClick
>>>dim exitvar as Integer
>>>exitvar = DataGridView1.Rows(e.RowIndex).Cells(0).Value
>>>Dim ff As New Form1
>>>ff.BringToFront()
>>>ff.soumavez(exitvar) ' this is the call to the sub in Form1
>>>End Sub
>>>"rowe_newsgroups" wrote:
>>>>Please post the code that calls the sub.
>>>>>
>>>>Thanks,
>>>>>
>>>>Seth Rowe
>>>>>
>>>>vitorjol wrote:
>>>>>
>>>>>Hello.
>>>>>>
>>>>>I have 2 forms (Form1 and Form2). When i call the Sub placed
>>>>>in
>>>>>form1 from
>>>>>form2, i get the error "object reference not set to an
>>>>>instance
>>>>>of an object"
>>>>>!
>>>>>What can i do to solve the problem?
>>>>>Thanks

Sep 23 '06 #15
Can i force the execution of the Button_click located in Form1 from Form2?

i ask this because in Form1, if i execute the sub called from the
button_click everything goes right, but if i call the sub outside the Form1
(Form2) occurs the error!!!

Thanks

"GhostInAK" wrote:
Hello rowe_newsgroups,

I envy you, Seth. I have to use the abismal peice of crap every day.

-Boo
Thanks for coming to my rescue here Ghost, with no experience using
Mapguide (and not having it's SDK) I was getting in over my head!

Thanks,

Seth Rowe

GhostInAK wrote:
Hello rowe_newsgroups,

Your solutuion would not work. MGMapControl is the namespace..
MGMapLayer
is the type. getMapObject is not static (shared).
pubvar2 (GEEZ! Use some better freakin names next time wouldja, OP!)
is
supposed to grab a reference to a specific map layer.
You are correct in that the OP is trying to use an object that is
null.

OP: Check your MWF, make sure you have a layer actually called
"SIG". Also,
ZoomSelected is a terrible way to get to an object. First, the
selection
will only succeed if the object is visible at your current zoom
scale. Second,
MapGuide is notorious for busystate collisions.
-Boo

Hmm. The "object reference not set to an instance of an object"
exception is raised when you try to use an object that doesn't exist
yet, like if you left out the New keyword. However, everything looks
alright to me. The only thing I would try (outside of praying that
someone else happens on this thread and sees what we're missing!) is
to change this line:

pubmapobj = pubvar2.getMapObject(varin)

To this:

pubmapobj = MGMapControl.MGMapLayer.getMapObject(varin)

That will take the pubvar2 variable out of the equation. Note, you
may also try throwing the "New" keyword into that line, I'm not
sure if you do or don't need it.

Hope that helps,

Seth Rowe

vitorjol wrote:

Yes....im portuguese....but I love America!!!!!

i forgot to tell U the line with the problem!!!Sorry

So, the problem "object reference not set to an instance of an
object" occurs in the line >>pubmapobj =
pubvar2.getMapObject(varin)

Thanks

"rowe_newsgroups" wrote:

ok....the name "soumavez" its a name that i called to the
Sub...End Sub.
>
It looked like a foreign langauge to me (is it?), so I was just
making sure it was a protected keyword in a foreign language
edition of visual studio.

Anyways, I have to apologize - my "visual" debugging skills must
be lacking today, as I still don't see anything obviously wrong.
Which line of the code raises the exception?

Thanks,

Seth Rowe

vitorjol wrote:

i put here the code of Sub(its about the Mapguide ActiveX to show
a map in VB). I'll send there to Sub in the other form the id of
a polygon on the map, and then the Sub localize the polygon and
zoom the place!!!
>
Code of the Sub "soumavez" in the Form1:
>
Public Sub soumavez(ByVal varin As Integer)
' --->"varin" its the var that i send from Form2!!!
' --->"mgmap" its the name of the control (mapguide activex)
Try
Dim pubmapsel As MGMapControl.MGSelection
Dim pubvar2 As MGMapControl.MGMapLayer
Dim pubmapobjectos As MGMapControl.MGCollection
Dim pubmapobj As MGMapControl.MGMapObject
pubmapsel = mgmap.getSelection()
pubvar2 = mgmap.getMapLayer("SIG")
pubmapobjectos = mgmap.createObject("MGCollection")
pubmapobj = pubvar2.getMapObject(varin)
pubmapobjectos.add(pubmapobj)
pubmapsel.addObjectsEx(pubmapobjectos, False)
mgmap.zoomSelected()
mgmap.zoomScale(mgmap.getLat(), mgmap.getLon(), 1500)
mgmap.refresh()
Catch ex As Exception
MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK,
MessageBoxIcon.Error)
End Try
End Sub
"rowe_newsgroups" wrote:
>Looks like it should work, when you step through the code where
>does the exception occur? If the error occurs in somewhere
>other than this sub please post that code too. Also what does
>"soumavez" mean?
>>
>Thanks,
>>
>Seth Rowe
>>
>vitorjol wrote:
>>
>>Here is the code:
>>>
>>' the code in form2
>>Private Sub DataGridView1_RowHeaderMouseClick(ByVal sender As
>>Object, ByVal
>>e As System.Windows.Forms.DataGridViewCellMouseEventArg s)
>>Handles
>>DataGridView1.RowHeaderMouseClick
>>dim exitvar as Integer
>>exitvar = DataGridView1.Rows(e.RowIndex).Cells(0).Value
>>Dim ff As New Form1
>>ff.BringToFront()
>>ff.soumavez(exitvar) ' this is the call to the sub in Form1
>>End Sub
>>"rowe_newsgroups" wrote:
>>>Please post the code that calls the sub.
>>>>
>>>Thanks,
>>>>
>>>Seth Rowe
>>>>
>>>vitorjol wrote:
>>>>
>>>>Hello.
>>>>>
>>>>I have 2 forms (Form1 and Form2). When i call the Sub placed
>>>>in
>>>>form1 from
>>>>form2, i get the error "object reference not set to an
>>>>instance
>>>>of an object"
>>>>!
>>>>What can i do to solve the problem?
>>>>Thanks


Sep 23 '06 #16
Now, have you tried to first SHOW the document with the command "show"
before let running the sub.

I realy believe that your problem just occurs because there is no valid
form available (because it's not yet shown and has it's window handle)
that can take the form handlings of your map software ...

Daniel

Sep 25 '06 #17
i have the form1 and form2 open....i dont have to do the show command to the
Form1...i think!!!!!

"Daniel Bloch" wrote:
Now, have you tried to first SHOW the document with the command "show"
before let running the sub.

I realy believe that your problem just occurs because there is no valid
form available (because it's not yet shown and has it's window handle)
that can take the form handlings of your map software ...

Daniel

Sep 25 '06 #18
Have you tried?

Sometimes, software development is not about thinking but about trying.
So give it a try and place a ".show" instead of ".bringtofront" and
check out, what happens.

Daniel

Sep 26 '06 #19
it opens again the form1....i dont want this, and dont work anyway!!!
i think that i solved the problem. In form1 i open the form2 with the
command showdialog...just this!!!

"Daniel Bloch" wrote:
Have you tried?

Sometimes, software development is not about thinking but about trying.
So give it a try and place a ".show" instead of ".bringtofront" and
check out, what happens.

Daniel

Sep 26 '06 #20

vitorjol schrieb:
it opens again the form1....i dont want this, and dont work anyway!!!
i think that i solved the problem. In form1 i open the form2 with the
command showdialog...just this!!!

"Daniel Bloch" wrote:
Have you tried?

Sometimes, software development is not about thinking but about trying.
So give it a try and place a ".show" instead of ".bringtofront" and
check out, what happens.

Daniel

Seems that we had a great misunderstanding - it's exactly what I tried
to propose ...

But already you have your solution and so it's also ok for me...
Daniel

Sep 26 '06 #21

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
by: Shaun Fleming | last post by:
I've been trying to make this simple script compatible across various browsers. It works for IE 6.0 and NS 7 but doesnt work with Opera (I have version 7.11). This is what is supposed to happen:...
9
by: Marina | last post by:
Here is the problem. If 2 different properties on the same (or different) control are bound to the same data column, changing the Text property and calling EndCurrentEdit discards the new value. ...
2
by: Mike | last post by:
I am trying to open a search results form based on the input from a prompt form. I am using the following code: --- Begin Code --- Private Sub btnSearch_Click() 'Dim Variable and assign data...
7
by: Andrew Christiansen | last post by:
Hey everyone. I have Visual Basic .NET 2003 and am trying to show images on a treeview control. I have the imagelist on the form filled with images, and have the ImageList property of the...
7
by: Frank Maxey | last post by:
I am fairly new to VB.Net and am having a curious problem. I have an entry dialog form called from a main form. The calling form needs to check the DialogResult field for an OK response. In...
8
by: koorb | last post by:
I am starting a program from a module with the Sub main procedure and I want it to display two forms for the program's interface, but when I run the program both forms just open and then program...
14
by: Altman | last post by:
Ok I have a control that is inherited from another class. In the child I put msgbox(me.name) in the load event. What always pops up is the name of the parent class and not the name of the...
1
by: DS | last post by:
I seem to have run into another strange anomaly with the monthCalendar control. I want to display 6 months at time with either the first half of the year (January-June) or the later half of the...
14
by: =?Utf-8?B?UHVjY2E=?= | last post by:
Hi, I'm using VS2005 and .net 2.0. I'm creating an application that has 3 forms. I want allow users to move forward and backward with the forms and retain the data users have entered. I thought...
2
by: Lyn | last post by:
Hi, I am using a form (FormA) to list the records in a recordset. In the FormA footer, I have an "Add" command button that opens a new form (FormB) modally which is used to input and save a new...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
1
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
1
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
muto222
php
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.