none
如何在VB.NET中動能執行自定函數 RRS feed

  • 問題

  • 大家好:我是位新手,我想要動態的傳入字串 並呼叫 自定的函數,除了使用CallByName 以外是否還有其它的方法,若只能用CallByName時,是否有對應動態Class的處理方法

     簡單來講就是如何用字串變數來呼叫自定的函數

    2006年5月10日 上午 05:22

解答

  • MSDN 裡面有動態載入組件跟動態編譯來呼叫動態的函數,不過寫的若若長,實做起來更累(是有範例可以下載啦)

    所以我暫時在 VB.NET 內呼叫 Script Control 來動態載入函數,不過限制是要用 VBScript 語法,純函數或副程式沒問題,要動物件設定的話,COM 物件可以由 VB.NET 傳給 Script 來執行或變更,.Net 類別不行。

    2006年5月12日 下午 01:31
    版主

所有回覆

  • 看不太懂 .
    2006年5月10日 上午 08:08
    版主
  • 以下是我的程式

      Public Function upfOpenProgram(ByVal sender As Object, ByVal strProgramName As String, ByVal strProgramTitle As String) As Boolean
            Dim fmTemp As Form
            Dim fmMdiChildren As Array = sender.MdiChildren
            If fmMdiChildren.Length > 0 Then
                For Each fmTemp In fmMdiChildren
                    If (fmTemp.Name = "fm" & strProgramName) Then
                        fmTemp.WindowState = FormWindowState.Maximized
                        Exit Function
                    End If
                    If (fmTemp.Name = "prg" & strProgramName) Then
                        fmTemp.WindowState = FormWindowState.Maximized
                        Exit Function
                    End If
                Next
            End If

            Try

                Dim prg As New db01

                CallByName(prg, "prg" & strProgramName, CallType.Method, sender, strProgramName, strProgramTitle)
                
            Catch ex As Exception
                'MessageBox.Show("[" & ex.ToString & "][" & ex.Message.ToString & "]")
                
                MessageBox.Show("[程式] {" & strProgramTitle & "} 尚未建立", strProgramName, MessageBoxButtons.OK, MessageBoxIcon.Information)
            End Try

        End Function

     

    上面紅色字 DB01 是自定的 CLASS,這是為了使用CallByName()而建立的

    而另外的紅色字串變數是我在 DB01 中的一個自定函數名稱

    使用CallByName()是可以呼叫我自定的函數,

    但是真正在應用上不可能只有一個自定的函數而已,而且也不可能一直放在同一個Class中,所以才提出這個問題.希望能找到一個決解的方法,感謝你撥空看了我的問題.

     

    2006年5月12日 上午 07:06
  • MSDN 裡面有動態載入組件跟動態編譯來呼叫動態的函數,不過寫的若若長,實做起來更累(是有範例可以下載啦)

    所以我暫時在 VB.NET 內呼叫 Script Control 來動態載入函數,不過限制是要用 VBScript 語法,純函數或副程式沒問題,要動物件設定的話,COM 物件可以由 VB.NET 傳給 Script 來執行或變更,.Net 類別不行。

    2006年5月12日 下午 01:31
    版主
  • 謝謝你的回答!

    不過我找不到MSDN中你所說的東西,不知是否可以提供我網頁位置或是範例下載的位置.因為我不懂VBScript的語法.

    再次謝謝你的指導

     

    2006年5月15日 上午 04:16
  • 下面轉貼我以前貼在別站的文章 (vb研究小站)


    Re: ScriptControl1 的一些屬性用法
    作者: 璉璉 (---.HINET-IP.hinet.net)
    日期:   02-02-05 11:39

    補個網址:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexpvb/html/usingscriptcontrolinyourownprograms.asp

    這是一個我很喜歡的 ScriptControl 範例,請由左邊的目錄展開,核心範例在:
    Building a Simple MSScript Program
    Designing a Calculator
    Calculating Equations in a Spreadsheet


    下面這個範例是讓沒有掛 ASP 的電腦也可以跑 ASP ,含完整原始碼下載:
    http://msdn.microsoft.com/msdnmag/issues/0900/cutting/default.aspx

    這是在 MSJ 刊登的文章,我覺得看第一個網址比較清楚:
    http://msdn.microsoft.com/msdnmag/issues/0600/visualprog/default.aspx

    這篇文章是給用 VB.NET 的人看的:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnhcvb04/html/vb04j10.asp

    MSDN 網站還有很多技術文章跟範例,有空可以去看到爽...
    Re: ScriptControl1 的一些屬性用法
    作者: 璉璉 (---.HINET-IP.hinet.net)
    日期:   02-02-05 11:06

    不好意思,說一個煞風景的話...

    其實不需要這麼辛苦,在 MSDN 網站有英文說明。

    更悲慘的是在 VB6 安裝光碟第一片有中、英文說明檔。

    在第一片光碟搜尋
    MSSCRIPT.HLP

    會找到兩個,其中一個在 Chinese 目錄下之子目錄內,是中文說明檔,請把它拷貝出來,想要讓它在 VB6 中按 F1 就會自動連接,就請放到:
    C:\WINDOWS\Help (只有檔案,不要拷貝整個目錄)

    不想自動連接,就挑個喜歡的地方放,自己建個捷徑來看。

    以這個範例來說,比較適合用 AddCode 來做,看完說明檔內的範例後,你可能會覺得我很煞風景... 所以說明檔內的範例我就不轉貼了...

    註:
    不要跟我要檔案,要是沒有 VB 第一片安裝片的話,我實在很懷疑你怎樣把 VB 裝上去的,就算補品也是有第一片吧。若是你只用 JavaScript/VBScript 的話,那就去看英文網頁吧。
    這件事前幾年本來想整理到我的網頁的,後來太忙壓著壓著就忘了寫,現在又改用 .NET ,就懶的再弄了,這邊說說就當作提過... 我以前好像在 BBS 貼過分享這件事...

    2006年5月15日 上午 06:19
    版主
  • 謝謝你提供的資料
    2006年5月16日 上午 04:27