protected override void Dispose(bool disposing)
        {
            if (graphicsDeviceService != null)
               {
            graphicsDeviceService.Release(disposing);
            graphicsDeviceService = null;
               }

               base.Dispose(disposing);
        }
  public static GraphicsDeviceService AddRef(IntPtr windowHandle,int width, int height)
  {
   // Increment the "how many controls sharing the device" reference count.
   if (Interlocked.Increment(ref referenceCount) == 1)
   {
    // If this is the first control to start using the
    // device, we must create the singleton instance.
    singletonInstance = new GraphicsDeviceService(windowHandle,
                                                  width, height);
   }

   return singletonInstance;
  }
        protected override void OnCreateControl()
        {
            if (!DesignMode)
               {
            graphicsDeviceService = GraphicsDeviceService.AddRef(Handle,
                                                         ClientSize.Width,
                                                         ClientSize.Height);

            // Register the service, so components like ContentManager can find it.
            services.AddService<IGraphicsDeviceService>(graphicsDeviceService);

            // Give derived classes a chance to initialize themselves.
            Initialize();
               }

               base.OnCreateControl();
        }