2017-12-30 17 views
0

우선, 클래스가 왜 클래스입니까?다른 모듈의 양식 객체로 물건을 어떻게 처리합니까?

하지만 지금은 주 질문입니다.

나는이 : 양식에

Form1.vb

Module1.vb

내가이의 속성을 변경할 수 있도록하려면 텍스트 상자, 진행 표시 줄, 라벨 등

있다 개체를 module1에서 내 양식에 있지만, 나는 그들을 액세스 할 수없는 것.

다음은 양식의 개체입니다. 맞습니까? 그렇다면 특정 범위가 있습니까? 어떻게 바꿀 수 있습니까?

잠깐.하지만 내 솔루션 탐색기에 따르면, 이러한 것들이 클래스의 속성입니까 ??

enter image description here

하지만이 프로그램을 실행할 때 양식이 나타 ?? form1 객체가 생성되도록 폼 클래스를 인스턴스화해야합니까? 그것은 중요하지만, 여기가 동적으로 생성되기 때문에 모듈 1 개

Sub WriteObjectsToCSV() 
    Dim props As PropertyInfo() = MyCompanies(1).GetType().GetProperties() 
    Dim sw As StreamWriter = 
    My.Computer.FileSystem.OpenTextFileWriter(SaveAs, False) 
    Dim csv As New CsvHelper.CsvWriter(sw) 

    csv.WriteHeader(Of Company)() 
    csv.NextRecord() 

    For Each company In MyCompanies 

     '>>> want to write to my text box and change my progress bar here <<< 

     For Each prop In props 
      csv.WriteField(prop.GetValue(company)) 
     Next 
     csv.NextRecord() 
    Next 
End Sub 
+1

양식 클래스 인 모듈이 쓸 수

Public Property OutputText() As String Get Return txtOutput.Text End Get Set(ByVal value As String) txtOutput.Text = value End Set End Property 

외부에서 액세스 할 수있는 텍스트를 만드는 형태로 속성을 선언 할 수 있습니다 세기와 그것은 객체 지향 세계입니다. 그림의 모든 것이 대상이 아닌 - 일부는 방법입니다. 'MyCompanies (1)'이 무엇인지는 명확하지 않지만 모듈 메소드에 전달할 수 있습니다. 'MyCompanies (1)'이 무엇인지에 따라, 그 코드는 자국 시리얼 라이저로 보인다. 사용 가능한 여러 가지 직렬화 방법을 살펴볼 수 있습니다. – Plutonix

+3

양식 *이 인스턴스화됩니다. VB App 프레임 워크가이를 처리합니다. 프로젝트 프로퍼티에서'Startup Object'로 설정 한 것에 따라 어떤 형태가 될까요? 'Sub Main'의 코드에서'Application.Run (New Form1)'으로 할 수도 있습니다. MyCompanies가 데이터 인 경우, 그 메소드에 전달하는 것이 아니라 데이터가있는 곳 (양식)으로 메소드를 이동할 수도 있습니다. 기존의 시리얼 라이저는 연구 가치가 있다고 시사합니다.앞으로는 게시물 당 하나의 질문을 시도하십시오 - 이것은 경계선으로 자습서를 요청합니다. – Plutonix

답변

2

양식에서 조각은 클래스되어있다

하지 않는 것이. 동일한 폼 클래스 서버 타임을 인스턴스화하고 열 수 있으며 인스턴스를 동시에 열어 둘 수 있습니다.

VB는 자동으로 기본 폼을 인스턴스화합니다.

My.Application.OpenForms을 통해 오픈 양식에 액세스 할 수 있습니다. 기본 폼은 Public 또는 Internal을 선언해야합니다 첫 번째

Dim mainForm As Form1 

mainForm = DirectCast(My.Application.OpenForms(0), Form1) 
mainForm.txtOutput.Text = "hello" 

외부에서 양식의 컨트롤에 액세스 할 수 있으려면 항상. 등록 정보 창 (Modifiers 속성)에서 액세스 한정자를 변경할 수 있습니다. 이 21이기 때문에

대신, 당신은 또한 이제

mainForm.OutputText = "hello" 
관련 문제