WEB开发网
开发学院软件开发C语言 C#发现之旅:于动态编译的VB.NET脚本引擎(下) 阅读

C#发现之旅:于动态编译的VB.NET脚本引擎(下)

 2010-09-30 21:08:13 来源:WEB开发网   
核心提示: 这里程序首先创建了一个名为myVBAEngine的脚本引擎对象,然后向它的VBCompilerImports列表添加了全局对象容器类型所在的名称空间MyVBAScript.Global,C#发现之旅:于动态编译的VB.NET脚本引擎(下)(5),然后程序创建一个文档对象,并填充VB脚本引擎用的全

这里程序首先创建了一个名为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 = "没有加载任何脚本方法";
    }
}

上一页  1 2 3 4 5 6 7 8  下一页

Tags:发现 之旅 动态

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接