2011-10-18 8 views
0

私はそのクラスiでclass1というクラスを持っていますが、form1のテキストボックスに何かを書きますが、Form1.TextBox1.textにアクセスすることはできません。それは私にExcelの保存ダイアログを与えないということですが、別の問題です。別のクラスのform1にアクセスできない

Form1コントロールにはどのようにアクセスできますか?

Form1のコード

Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Call ThisDrawing.GetFilepath(True) 
    If Me.TextBox1.Text = "" Or Me.TextBox1.Text = "False" Then MsgBox("Er is geen geldige filenaam opgegeven") 
End Sub 

あなたは次のようにForm1のオブジェクトを作成し、直接そのようにForm1の内のコントロールにアクセスすることはできませんClass1のコード

Public Shared Sub GetFilepath(ByVal hide As Boolean) 
    Dim Xl As New Excel.Application 
    Dim Filepath As String 
    Call ExcelKoppelen("Z:\test\test.xls") 
    Filepath = Xl.GetSaveAsFilename("", "Excel file", "*.xls") 
    Form1.TextBox1.text = Filepath 

End Sub 

Excelkoppelenコード

Shared Sub ExcelKoppelen(ByVal Bestand As String) 
    Dim Xl As Excel.Application 
    Dim Filepath As String 
    Dim Workbook As Excel.Workbook 
    Dim Worksheet1 As Worksheet 
    Dim Worksheet2 As Worksheet 
    On Error Resume Next 
    Xl = GetObject(, "Excel.application") 
    If Err.Number Then 
     Information.Err.Clear() 
     Xl = CreateObject("Excel.application") 
    End If 
    Xl.Visible = True 
    Xl.ScreenUpdating = True 
    Workbook = Xl.Workbooks.Open(Bestand) 
    If Err.Number Then 
     Workbook = Xl.Workbooks.Open("Z:\test\test.xls") 
     Information.Err.Clear() 
     Workbook.SaveAs(Bestand) 
    End If 

    If Err.Number Then Exit Sub 
    On Error GoTo 0 

    Worksheet1 = Workbook.Worksheets.Item(1) 
    Worksheet2 = Workbook.Worksheets.Item(2) 
    Xl.Visible = False 
End Sub 

答えて

1

オブジェクトを使用してコントロールを取得します。

Dim F as New Form1 
F.TextBox1.text = Filepath 
+0

ありがとうございます。現在、Excelの部分を除いて完璧です。 – PandaNL