Solved

Having trouble converting VB to C#

Posted on 2006-10-21
14
228 Views
Last Modified: 2008-02-26
Hi,

I am trying to change a variable used in the MapPoint ActiveX control to hopefully get it to do what I need it to do.  I am trying to set a variable, UserControl, to true. But it throws the exception:

"Access is denied" when I try to set it to true.

I have been digging through the Help function, which uses VB only, and have found they have used an interesting term for the UserControl.  They say "Let".

Does anyone have any idea what I might try in C# to get past this exception?  If the property were read only, wouldn't it say so?  And how could it be read only if the help function shows that it's changable?

Thanks for the help.

Bob

  Dim objApp As New MapPoint.Application

  'Set up the application
  objApp.Visible = True
  objApp.UserControl = True

////

// a different function

    Dim objApp As New MapPoint.Application
    Dim objMap As MapPoint.Map
    Dim objLocNY As MapPoint.Location
    Dim objLocLA As MapPoint.Location
    Dim objCenter As MapPoint.Location
    Dim objTextbox As MapPoint.Shape

    'Set up application and create Location objects
    Let objApp.Visible = True
    Let objApp.UserControl = True
0
Comment
Question by:ba272
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 8
  • 6
14 Comments
 
LVL 63

Accepted Solution

by:
Fernando Soto earned 500 total points
ID: 17781741
Hi Bob;

I translated the VB code and tested it. Try this it worked for me.

      MapPoint.Application objApp = new MapPoint.Application();

      // Set up the application
      objApp.Visible = true;
      objApp.UserControl = true;

////

// a different function

      MapPoint.Application objApp = new MapPoint.Application();
      MapPoint.Map objMap;
      MapPoint.Location objLocNY;
      MapPoint.Location objLocLA;
      MapPoint.Location objCenter;
      MapPoint.Shape objTextbox;

      // Set up application and create Location objects
      objApp.Visible = true;
      objApp.UserControl = true;


Fernando
0
 

Author Comment

by:ba272
ID: 17781754
What do yo umake of my exception?  "Access denied"??
0
 
LVL 63

Expert Comment

by:Fernando Soto
ID: 17781909
Can you post the complete error message with the additional info.
0
Creating Instructional Tutorials  

For Any Use & On Any Platform

Contextual Guidance at the moment of need helps your employees/users adopt software o& achieve even the most complex tasks instantly. Boost knowledge retention, software adoption & employee engagement with easy solution.

 

Author Comment

by:ba272
ID: 17781934
private AxMapPoint.AxMappointControl axMappointControl1;


GetMap().Application.Visible = true; /// XXX dies here

private MapPoint.Map GetMap()
{
      try
      {
            return axMappointControl1.ActiveMap;
      }
      catch ( Exception ex )
      {
      handles.LogException( "UpdateStreetsDatabase.DeletePushpin()", ex, "" );
      }
return null;
}
0
 
LVL 63

Expert Comment

by:Fernando Soto
ID: 17781950
Can You post the message that is thrown when it gives the error. You normally get a message box with the message and additional information.
0
 

Author Comment

by:ba272
ID: 17781959
sorry.  coming right up.
0
 

Author Comment

by:ba272
ID: 17781977
     StackTrace      "   at MapPoint.Application.set_Visible(Boolean pVal)\r\n   at DMS.UpdateStreetsDatabase.inButton_Click(Object sender, EventArgs e) in c:\\texselogic\\projects\\dms\\updatestreetsdatabase.cs:line 712"      string
0
 

Author Comment

by:ba272
ID: 17781982
This line:

GetMap().Application.Visible = true; /// XXX dies here

is inside a button click handler
0
 

Author Comment

by:ba272
ID: 17782006
Fernando,

Here's the code from the Help function pertaining to setting the UserControl variable.


  Sub LeaveAppRunningAfterQuit()

  Dim objApp As MapPoint.Application
  Set objApp = CreateObject("mappoint.application")

  'Make the application visible
  objApp.Visible = True

  'Give the user control of the application
  objApp.UserControl = True

  End Sub
0
 
LVL 63

Expert Comment

by:Fernando Soto
ID: 17782645
Hi Bob;

I have not used MapPoint before in a project. I have MapPoint 2006 on my system and if you would like I can attempt to run your code on my system to see if I can find the problem. If you would like me to help in that way if you would upload your complete project to the EE web site http://www.ee-stuff.com/login.php and login with your user name and password and then click on the Expert Area tab. Then you will be able to upload a zip file of your project. After the upload they will give you a link, if you post that link I then will be able to download the file and have a look at it.

Fernando
0
 

Author Comment

by:ba272
ID: 17782670
Fernando,

Thanks so much for offering to help.  I had no idea that  EE had such a site for transmissions.

Maybe I can put together a small example program that we can work on together.

Thanks,
Bob

0
 
LVL 63

Expert Comment

by:Fernando Soto
ID: 17782674
Very Good. Also what version of MapPoint are you using, 2002, ..., 2006?
0
 

Author Comment

by:ba272
ID: 17792180
2004
0
 
LVL 63

Expert Comment

by:Fernando Soto
ID: 17792235
Have you completed the test project as you were going to do and upload it to the EE web site yet?
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Entity Framework is a powerful tool to help you interact with the DataBase but still doesn't help much when we have a Stored Procedure that returns more than one resultset. The solution takes some of out-of-the-box thinking; read on!
Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
There's a multitude of different network monitoring solutions out there, and you're probably wondering what makes NetCrunch so special. It's completely agentless, but does let you create an agent, if you desire. It offers powerful scalability …
In this brief tutorial Pawel from AdRem Software explains how you can quickly find out which services are running on your network, or what are the IP addresses of servers responsible for each service. Software used is freeware NetCrunch Tools (https…

688 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question