C#发现之旅:于动态编译的VB.NET脚本引擎(下)
2010-09-30 21:08:13 来源:WEB开发网这里程序首先创建了一个名为myVBAEngine的脚本引擎对象,然后向它的VBCompilerImports列表添加了全局对象容器类型所在的名称空间MyVBAScript.Global。
然后程序创建一个文档对象,并填充VB脚本引擎用的全局对象容器,设置它的Window和Document的属性值。
程序试图加载应用程序所在目录下的demo.vbs文件中的内容作为默认加载的脚本代码,若成功加载并编译成功则调用RefreshScriptMethodList来更新用户界面中的可用脚本方法列表,定义RefreshScriptMethodList函数的代码如下
/// <summary>
/// 刷新“运行脚本”按钮的下拉菜单项目,显示所有可以执行的脚本方法名称
/// </summary>
private void RefreshScriptMethodList()
{
// 情况脚本方法名称列表
this.btnRunScript.DropDownItems.Clear();
// 获得脚本引擎中所有的脚本方法名称
string[] names = myVBAEngine.ScriptMethodNames;
if (names != null && names.Length > 0)
{
// 将脚本方法名称添加到“运行脚本”的下拉菜单项目中
foreach (string name in names)
{
ToolStripMenuItem item = new ToolStripMenuItem();
item.Text = name;
item.Click += new EventHandler(ScriptItem_Click);
btnRunScript.DropDownItems.Add(item);
}
myStatusLabel.Text = "共加载 " + names.Length + " 个脚本方法";
}
else
{
ToolStripMenuItem item = new ToolStripMenuItem();
item.Enabled = false;
item.Text = "没有加载任何脚本方法";
btnRunScript.DropDownItems.Add(item);
myStatusLabel.Text = "没有加载任何脚本方法";
}
}
更多精彩
赞助商链接