1

オブジェクト内からスクリプトをプルする小さなアプリを構築しています。コードがスクリプトを持つオブジェクトからフィールドを引き戻している部分に到達しましたが、このエラーが発生しています。

「非共有メンバーへの参照にはオブジェクト参照が必要です」

何を変更すればよいのか、これを回避する方法がわかりません。誰か提案はありますか?

ここに私がこれまでに持っているコードがあります。これは、会社を選択するコンボボックスを備えたシンプルなアプリで、ボタンをクリックするとスクリプトが取得され、テキストボックスに表示されます。

これが私のコードです:

Imports System.IO
Public Class Form1
    Public M3System As MILLSYSTEMLib.System
    Public M3Script As MILLCOMPANYLib.CScripting

    Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'On Error Resume Next
        Try
            Dim Approved As Integer

            ' Create a Millennium system obects
            M3System = CreateObject("MillSystem.System")
            M3System.Load("Millennium")

            'run login script
            Dim User As Object = M3System.Login()

            ' See if login worked
            If User Is Nothing Then
                'MsgBox("Login failed!")
                Approved = 0
            Else
                'MsgBox("Login successful")
                'if approved=1 then the user is able to access M3
                Approved = 1
            End If

            'populate combo box
            For Each Company In M3System.Companies
                cb_COID.Items.Add(Company.Field("co").ToString)
            Next

        Catch ex As Exception
            Me.Close()
        End Try


    End Sub

    Public Sub btn_LoadScript_Click(sender As Object, e As EventArgs) Handles btn_LoadScript.Click

        Dim CoCode As String = cb_COID.SelectedItem
        Dim script As String = M3Script.vbscript

        If IsNothing(cb_COID) Then
            MessageBox.Show("Select a Company Code")
        End If
        For Each CoCode In M3Script.co
            tb_Script.Text = script
        Next

    End Sub
4

1 に答える 1

2

あなたが失敗している行はDim script As String = M3Script.vbscript

その場合は、 を宣言しているがM3Script、そのインスタンスを作成していないためです。

M3Script = new MILLCOMPANYLib.CScriptingコードに追加するか、オブジェクトをどこかに設定してみてくださいM3Script = CreateObject("MillSystem.Script")

于 2013-08-30T17:54:36.640 に答える