📄 engine.cs
字号:
using System;
using System.Xml;
using System.Reflection;
using System.Diagnostics;
using System.ComponentModel;
using System.Collections;
using System.Windows.Forms;
namespace gowk.GXF
{
/// <summary>
/// UICreater 的摘要说明。
/// </summary>
public class Engine
{
static Engine instance;
private XmlDocument doc;
private Engine()
{
}
public Control CreateControl(string id)
{
return (Control)this.CreateObject(id);
}
public Form CreateForm(string id)
{
return (Form)this.CreateObject(id);
}
public object CreateObject(string id)
{
XmlNode node=doc.SelectSingleNode(@"descendant::*[@id='"+id+"']");
if(node!=null && node.NodeType==XmlNodeType.Element)
{
try
{
object o=ObjectCreator.Instance.CreateInstance(node);
return o;
}
catch
{
throw;
}
}
return null;
}
public XmlDocument XmlDocument
{
get{return this.XmlDocument;}
set
{
this.doc=value;
ObjectCreator.Instance.XmlDocument=doc;
}
}
public void Run()
{
if(!this.RunMain())
{
this.RunMainForm();
}
}
private bool RunMain()
{
ObjectCreator oc=ObjectCreator.Instance;
if((oc.Assemblys!=null)||(oc.Assemblys.Count>0))
{
foreach(Assembly asm in oc.Assemblys)
{
foreach(Type t in asm.GetTypes())
{
MethodInfo mi=t.GetMethod("Main",BindingFlags.Public|BindingFlags.NonPublic|BindingFlags.Static);
if(mi!=null)
{
mi.Invoke(null,null);
return true;
}
}
}
}
return false;
}
private void RunMainForm()
{
Form f=this.CreateForm("mainForm");
if(f!=null)Application.Run(f);
}
public static Engine Instance
{
get
{
if(instance==null)instance=new Engine();
return instance;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -