2013-10-27 2 views
1

양식의 값을 다른 양식의 공용 서브 프로그램으로 전달하는 방법을 알고 싶습니다. 문제는 "개인적이기 때문에이 맥락에서는 접근 할 수 없다"는 것입니다. "VB.Net 다른 양식에 값 전달

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 

그리고 당신은 매개 변수로 전달할 수 나는 또 다른 형태의

Public Class Form2 

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

나는 약 1 만 번 정도이 질문에 마주 쳤습니다. 주로 VB 프로그래머가 아닌 C# 프로그래머가 요청합니다. WinForms 폼은 다른 Visual Basic 클래스와 같은 클래스이며 다른 클래스에 값을 전달하는 것과 같은 방식으로 값을 한 폼에서 다른 폼으로 전달합니다. 멀티 스레딩이 포함되지 않는 한 아무런 차이가 없습니다. 생성자 매개 변수 (New), 메서드 (Sub 및 Function) 매개 변수, 속성 또는 이벤트 수단을 통해 값을 전달할 수 있습니다. –

답변

1

에 HOST = 시험 (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는 로컬 var이므로 _HostOrSomething을 사용할 수 있습니다. 이것들을 사용하려면 :

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

또는

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

이 코드는 모두 형태 2로만 이동합니까? 또는 또한 1을 형성하는 무엇인가? – rip2444

+0

첫 번째 샘플과 같은 인수를 가져오고'Sub Check'를 변경 한 다음 원하는 값을 인수로 전달하십시오. – Plutonix

-2
전역 클래스를 정의 할 수 있습니다 선언하는 방법 당신은 여기에 또 다른

 Dim A As New Integer= 10 

까지 하나에서 데이터를 전달하는 글로벌 변수를 사용할 수 있습니다

응용 프로그램의 어느 곳에서나 사용할 수 있습니다.

Public Class GlobalVariables 
Public Shared INTver As Integer 
End Class 

어떻게 당신이 대답을 저장하는 전역 변수를 사용하여이

GlobalVariables.INTver= A 

넣어 당신의 "쥐똥 나무 속의 식물 하위"이 라인 여기에 당신은에있는 양식의에 변수에 액세스 할 수 있습니다 WINDOWS 응용 프로그램.

+1

"* 안심하세요 *"??? 태도 나 여기에 후회할 필요가 없습니다. 그리고이 질문은 거의 4 년 전에 물었습니다. 그러나 글로벌 변수 (OP가 합법적으로 걱정해야 할 사항)를 사용하는 것이 좋습니다. –

+0

_ "전역 변수를 사용해야합니다"_ _ 누가 당신을 말합니까 _ ** 전역 변수를 사용하려면 ** _가 있습니까 ?? (실제로 전역에 있지는 않지만, 그들은 그 클래스에 여전히 묶여 있습니다 - 인스턴스가 아니라). 이 작업을 수행하는 데는 여러 가지 방법이 있습니다. 이 경우에는 공유 변수를 사용하는 것이 효과적이지 않으며 잘못 사용될 경우 프로그램의 의도 된 흐름을 실제로 방해 할 수 있습니다. 나는 OP가 걱정되어야한다는 @DavidMakogon에 동의한다. 이 경우 인스턴스 솔루션이 선호됩니다. –