程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#發現之旅第十四講 基於動態編譯的VB.NET腳本引擎(下)(4)

C#發現之旅第十四講 基於動態編譯的VB.NET腳本引擎(下)(4)

編輯:關於C語言

這裡程序首先創建了一個名為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 = "沒有加載任何腳本方法";
    }
}

這個函數的功能是,使用腳本引擎的ScriptMethodNames屬性獲得所有可用腳 本方法的名稱,然後添加到工具條的“運行腳本”的下拉菜單中,於是可以到達 如下的界面效果。

-
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved