VB.Net将值传递给另一种形式

时间:2013-10-27 13:38:04

标签: vb.net winforms visual-studio visual-studio-2012

我想知道如何将一个值从form1传递给另一个form的公共子。 问题在于它说'#34;它在这种情况下是不可访问的,因为它是私有的。"

我尝试将Form 1 Private Sub更改为Public Sub,但仍然存在相同的错误。我应该怎么做呢?

Public Class Form1
Dim test(), text1 As String
Const asd = "abcabc"

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    text1 = Space(LOF(1))
    test = Split(text1, asd)
    HOST = test(1)
End Sub

我想将HOST = test(1)值传递给另一种形式

Public Class Form2

Public Sub Check()
    'get the value to here
End Sub

2 个答案:

答案 0 :(得分:1)

您可以将其作为参数传递:

Public Sub Check(valueToCheck as String)
   'get the value to here
End Sub

或者在 form2 上创建一个属性来接收它:

private _HostOrSomething As String = ""
Friend Property HostOrSomething As String
   Get
        Return _HostOrSomething 
    End Get
    Set(ByVal value As String)
        _HostOrSomething = value
    End Set

在这种情况下,Sub Check可以使用_HostOrSomething,因为它是local var。要使用这些:

HOST = Test(1)
frm2.Check(HOST)

HOST = Test(1)
frm2.HostOrSomething = HOST
frm2.Check

答案 1 :(得分:-2)

您可以使用全局变量将数据从一个传递到另一个

        Dim A As New Integer= 10

这里是如何声明全局的。类可以在应用程序的任何位置定义。

Public Class GlobalVariables
Public Shared INTver As Integer
End Class

如何使用全局变量来存储答案

GlobalVariables.INTver= A

将这些行放在你的" privet sub"并且您可以将变量访问到WINDOWS应用程序中的任何表单。