ThinkGeo.com    |     Documentation    |     Premium Support

Error running ZedGrapStyle sample code

Hi,


I am quite new to Mapsuite. After doing the first getting started tutorial I decided to run the ZedGraphStyle sample.


However, while trying to run the sample code, I get the following error.


 

Error 1 The type 'System.Windows.Forms.UserControl' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. C:\Users\iMAP\documents\visual studio 2010\Projects\MapSuite_HelloWorld\MapSuite_HelloWorld\Default.aspx.cs 48 13 MapSuite_HelloWorld
 
The line this points to is 
ZedGraphControl zedGraph = new ZedGraphControl();
 
I believe this is due to the following two lines of code in the ZedGraphControl class definition file, 
 
- public System.Windows.Forms.MouseButtons EditButtons { get; set; }
- public System.Windows.Forms.Keys EditModifierKeys { get; set; }
 
Is this a known issue and would you be able to provide me with a work around.

 
Regards,
Asim.

 Just to be clear, I am building an ASP.NET application and not desktop/winform application



Asim, 
   
  Thank you for clarifying that you are building an ASP.NET app. Can you also give us more info on your environment? What operating system are you running? What language and culture do you have set up? And give us as much info as you think would be helpful. The more info we have about your system the more accurately and fast the Web team will respond to you. 
   Thank you.

Val, 
  
 Thank you for your response, I am currently using Windows 7 (32 bit). I’ve got Visual Studio 2010 installed on my system and I’m using .NET Framework 3.5 to build this application.  
  
 I have copied the code for the aspx and aspx.cs files below. 
  
  
 Please also not that the system is not recognizing ZedGraphControl.Size, it says that size is not a member of ZedGraphControl. But I have successfully used Size in a WindowsForm application. 
  
 I hope to hear form you soon.  
  
  
 Regards, 
 Asim. 
  
  
 --------------------------------------------------------          Default.aspx      -------------------------------------------------------- 
  
 <%@ Page Language=“C#” AutoEventWireup=“true” CodeBehind=“Default.aspx.cs” Inherits=“Oasis._Default” %> 
  
 <%@ Register assembly=“WebEdition” namespace=“ThinkGeo.MapSuite.WebEdition” tagprefix=“cc1” %> 
  
  
  
  
  
      
  
  
 <form> id=“form1” runat=“server”> 
 <asp:ScriptManager ID=“ScriptManager1” runat=“server”> 
 </asp:ScriptManager> 
 <cc1:Map ID=“Map1” runat=“server” height=“480px” width=“640px”> 
 </cc1:Map> 
 </form> 
  
  
  
  ------------------------------------------------       Default.aspx.cs    ----------------------------------------------------- 
  
 using System; 
 using System.Drawing; 
 using System.Web.UI; 
 using ThinkGeo.MapSuite.Core; 
 using ThinkGeo.MapSuite.WebEdition; 
 using ZedGraph; 
  
 namespace Oasis 
 { 
     public partial class _Default : System.Web.UI.Page 
     { 
         protected void Page_Load(object sender, EventArgs e) 
         { 
             if (!Page.IsPostBack) 
             { 
                 Map1.MapBackground.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#E5E3DF")); 
                 Map1.CurrentExtent = new RectangleShape(-123.41875, 41.96396484375, -107.158984375, 30.36240234375); 
                 Map1.MapUnit = GeographyUnit.DecimalDegree; 
  
                 WorldMapKitWmsWebOverlay worldMapKitOverlay = new WorldMapKitWmsWebOverlay(); 
                 Map1.CustomOverlays.Add(worldMapKitOverlay); 
  
                 //Create our Zedgraph Sytle and wire up the event.   
                 ZedGraphStyle zedGraphStyle = new ZedGraphStyle(); 
                 zedGraphStyle.ZedGraphDrawing += new EventHandler<ZedGraphDrawingEventArgs>(zedGraphStyle_ZedGraphDrawing); 
  
                 zedGraphStyle.RequiredColumnNames.Add(“WHITE”); 
                 zedGraphStyle.RequiredColumnNames.Add(“ASIAN”); 
                 zedGraphStyle.RequiredColumnNames.Add(“AREANAME”); 
  
                 ShapeFileFeatureLayer citiesLayer = new ShapeFileFeatureLayer(MapPath("~/SampleData/USA/cities_a.shp")); 
                 citiesLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(zedGraphStyle); 
                 citiesLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(TextStyles.City3(“AREANAME”)); 
                 citiesLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; 
                 citiesLayer.DrawingMarginPercentage = 100; 
  
                 LayerOverlay staticOverlay = new LayerOverlay(); 
                 staticOverlay.Layers.Add(“Cities”, citiesLayer); 
                 staticOverlay.IsBaseOverlay = false; 
                 Map1.CustomOverlays.Add(staticOverlay); 
             } 
         } 
  
         private void zedGraphStyle_ZedGraphDrawing(object sender, ZedGraphDrawingEventArgs e) 
         { 
             ChangeLabelPosition(((ShapeFileFeatureLayer)((LayerOverlay)Map1.CustomOverlays[1]).Layers[“Cities”]), 100); 
  
             ZedGraphControl zedGraph = new ZedGraphControl(); 
  
             zedGraph.Size = new Size(100, 100); 
  
             zedGraph.GraphPane.Fill.Type = FillType.None; 
             zedGraph.GraphPane.Chart.Fill.Type = FillType.None; 
  
             zedGraph.GraphPane.Border.IsVisible = false; 
             zedGraph.GraphPane.Chart.Border.IsVisible = false; 
             zedGraph.GraphPane.XAxis.IsVisible = false; 
             zedGraph.GraphPane.YAxis.IsVisible = false; 
             zedGraph.GraphPane.Legend.IsVisible = false; 
             zedGraph.GraphPane.Title.IsVisible = false; 
  
             PieItem pieItem1 = zedGraph.GraphPane.AddPieSlice(Convert.ToDouble(e.Feature.ColumnValues[“WHITE”]), GetColorFromGeoColor(GeoColor.StandardColors.LightBlue), 0, “White”); 
             pieItem1.LabelDetail.IsVisible = false; 
  
             PieItem pieItem2 = zedGraph.GraphPane.AddPieSlice(Convert.ToDouble(e.Feature.ColumnValues[“ASIAN”]), GetColorFromGeoColor(GeoColor.StandardColors.LightGreen), 0, “Asian”); 
             pieItem2.LabelDetail.IsVisible = false; 
             pieItem2.Displacement = 0.2; 
  
             zedGraph.AxisChange(); 
  
             e.Bitmap = zedGraph.GraphPane.GetImage(); 
          
         private void ChangeLabelPosition(ShapeFileFeatureLayer shapeFileLayer, int graphHeight) 
         { 
             ((TextStyle)shapeFileLayer.ZoomLevelSet.ZoomLevel01.CustomStyles[1]).XOffsetInPixel = -20; 
             ((TextStyle)shapeFileLayer.ZoomLevelSet.ZoomLevel01.CustomStyles[1]).YOffsetInPixel = Convert.ToSingle(graphHeight * 0.4); 
         } 
  
         private Color GetColorFromGeoColor(GeoColor geoColor) 
         { 
             return Color.FromArgb(geoColor.AlphaComponent, geoColor.RedComponent, geoColor.GreenComponent, geoColor.BlueComponent); 
         } 
     } 
 } 


Asim, 
  
 Your code is correct, according to your posts above, I think the problem is from the references in your application, you missed the System.Windows.Forms assembly, you just need to add this assembly to your application the problem can be resolved properly.  
  
 Also if there are still any problems please let us know again, 
  
 Thanks, 
  
 Scott,

Scott, 
  
 Thanks for your reply, I thought of adding System.Windows.Forms assembly, but couldnt find it in the Add Reference (.net) section. All I get is a System.Windows.Presentation assembly (not even a simple System.Windows assembly). I believe the reason for this is that this is a ASP.NET Web Application and not a Desktop/Windows Forms application.  
 Am I missing something? 
  
 Regards, 
 Asim.

Scott, 
  
 Thanks for your reply, I thought of adding System.Windows.Forms assembly, but couldnt find it in the Add Reference (.net) section. All I get is a System.Windows.Presentation assembly (not even a simple System.Windows assembly). I believe the reason for this is that this is a ASP.NET Web Application and not a Desktop/Windows Forms application.  
 Am I missing something? 
  
 Regards, 
 Asim.

Asim,


I think you don't look at all of items, I found both System.Windows.Presentation and System.Windows.Forms, you can look at the screen-shots, please focus on the position of scollbar, hope you will find it eventually.


If you still couldn't find it please contact our support@thinkgeo.com, we may hold a gotomeeting to control your screen and mouse to find it.




Thanks,


James



Thanks James, you were right … I dont the assembly. I thought that the list was alphabetically ordered. 
 Again, thanks for the help. 
  
 Regards, 
 Asim.

Asim, 
  
 You’re welcome. 
  
 Let me know if you have more questions. 
  
 James