If you have problems with this code, be sure to first check and make sure the namespace matches in all sections of your program.

The Program

using System;
 using System.Collections.Generic;
 using System.Windows.Forms;
 using Mogre;
 
 namespace Tutorial06
 {
     static class Program
     {
         [STAThread]
 
        static void Main()
        {
             OgreForm form = new OgreForm();
             form.Init();
             form.Go();
        }
    }
 }

== The Form ==

 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
 using System.Text;
 using System.Windows.Forms;
 using Mogre;
 
 namespace Tutorial06
 {
     public partial class OgreForm : Form
     {
         Root mRoot;
         RenderWindow mWindow;
 
         public OgreForm()
         {
             InitializeComponent();
 
             this.Size = new Size(800, 600);
             Disposed += new EventHandler(OgreForm_Disposed);
             Resize += new EventHandler(OgreForm_Resize);
         }
 
         void OgreForm_Resize(object sender, EventArgs e)
         {
             mWindow.WindowMovedOrResized();
         }
 
         void OgreForm_Disposed(object sender, EventArgs e)
         {
             mRoot.Dispose();
             mRoot = null;
         }
 
         public void Go()
         {
             Show();
             while (mRoot != null && mRoot.RenderOneFrame())
                 Application.DoEvents();
         }
 
         public void Init()
         {
             // Create root object
             mRoot = new Root();
 
             // Define Resources
             ConfigFile cf = new ConfigFile();
             cf.Load("resources.cfg", "\t:=", true);
             ConfigFile.SectionIterator seci = cf.GetSectionIterator();
             String secName, typeName, archName;
 
             while (seci.MoveNext())
             {
                 secName = seci.CurrentKey;
                 ConfigFile.SettingsMultiMap settings = seci.Current;
                 foreach (KeyValuePair<string, string> pair in settings)
                 {
                     typeName = pair.Key;
                     archName = pair.Value;
                     ResourceGroupManager.Singleton.AddResourceLocation(archName, typeName, secName);
                 }
             }
 
             // Setup RenderSystem
             RenderSystem rs = mRoot.GetRenderSystemByName("Direct3D9 Rendering Subsystem");
                                                 // or use "OpenGL Rendering Subsystem"
             mRoot.RenderSystem = rs;
             rs.SetConfigOption("Full Screen", "No");
             rs.SetConfigOption("Video Mode", "800 x 600 @ 32-bit colour");
 
             // Create Render Window
             mRoot.Initialise(false, "Main Ogre Window");
             NameValuePairList misc = new NameValuePairList();
             misc["externalWindowHandle"] = Handle.ToString();
             mWindow = mRoot.CreateRenderWindow("Main RenderWindow", 800, 600, false, misc);
 
             // Init resources
             TextureManager.Singleton.DefaultNumMipmaps = 5;
             ResourceGroupManager.Singleton.InitialiseAllResourceGroups();
 
             // Create a Simple Scene
             SceneManager mgr = mRoot.CreateSceneManager(SceneType.ST_GENERIC);
             Camera cam = mgr.CreateCamera("Camera");
             cam.AutoAspectRatio = true;
             mWindow.AddViewport(cam);
 
             Entity ent = mgr.CreateEntity("ninja", "ninja.mesh");
             mgr.RootSceneNode.CreateChildSceneNode().AttachObject(ent);
 
             cam.Position = new Vector3(0, 200, -400);
             cam.LookAt(ent.BoundingBox.Center);
         }
     }
 }


Alias: Mogre Basic Tutorial 6 Source (old page name)