2013-10-03 2 views
0

하나의 양식으로 된 이벤트를 다른 양식에서 수행하려면 어떻게합니까? 두 개의 텍스트 상자, 콤보 박스 및 버튼이있는 하나의 양식 (New Well form)이 있습니다. 메인 폼 (Stage Tally Main)에 새로운 진행 막대가 필요할 때마다 호출됩니다. 뉴 우물에 대한 정보를 입력하고 버튼을 누르면 스테이지 집계 메인에서 텍스트 상자 및 콤보 상자의 정보가있는 진행률 막대를 추가합니다. 뉴 웰 (New Well) 양식의 버튼을 스테이지 탈리 메인 (Stage Tally Main)에 추가하려면 어떻게합니까?하나의 양식에서 단추를 클릭하면 다른 양식으로 조치가 수행됩니다.

답변

0

실제로 매우 쉽습니다. 양식 2에서 수행하고자하는 일련의 코드가있는 경우 양식 1에 Public Sub some_code()를 입력하거나 양식 2에서 버튼 클릭 또는 양식로드 또는 양식으로 말할 수있는 것 .some_code()를 호출하고 일련의 코드를 호출하십시오. 나쁜 예가 여기에 있습니다 :

아래의 코드에서 메뉴 항목에 의해로드되고 아래쪽에있는 go_form은 go_Progess_bar()라는 공용 하위라는 점에 유의하십시오. 코드는 특정 위치에 진행률 표시 줄을 만드는 방법을 설명합니다. Form2를을 대표하는 공공 서브 some_name()

공공 Form1 클래스

Private Sub NewWellToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NewWellToolStripMenuItem.Click 

    Dim NewWell As New NewWellForm() 
    NewWell.ShowDialog() 

End Sub 

Public Sub go_Progress_Bar() 
    Dim ctrl As Control 
    Dim i As Integer = 0 
    For Each ctrl In Controls 
     If TypeOf ctrl Is ProgressBar Then 
      i = i + 1 
     End If 
    Next 

    Dim NumProgressBar As String = Convert.ToString(i) 

    Dim pBar As New ProgressBar() 

    pBar.Location = New System.Drawing.Point(20, 50 * (2 * i + 1)) 

    pBar.Name = "progressBar" + NumProgressBar 

    pBar.Width = 1200 

    pBar.Height = 30 

    Dim CrewAndWell As New Label 

    CrewAndWell.Name = CrewSelection + WellSelection 

    CrewAndWell.Location = New System.Drawing.Point(20, 50 * (2 * i + 1) - 20) 

    CrewAndWell.Width = 100 

    CrewAndWell.Height = 20 

    CrewAndWell.Text = CrewSelection + ": " + WellSelection 

    Controls.Add(CrewAndWell) 

    Controls.Add(pBar) 
End Sub 

새로운 아니라 양식 코드는 다음과 같습니다 : 기본적으로 내가 다른 형태로이 양식에서 수행하려는 모든 코드는 내가 간단한으로 초기화 할 수 있습니다 . 버튼 클릭 이벤트를 제외하고 다른 모든 것은 무시하십시오. 버튼을 클릭하면 go_Progress_Bar가 form1.go_Progress_Bar()에 의해 호출되고 코드는 form1에서 실행됩니다. 그것은 원시인이 할 수있는 아주 간단합니다.

공공 클래스 NewWellForm

Private Sub NewWellForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    ComboBox1.Items.AddRange(CrewList.ToArray()) 
End Sub 
Private Sub AddWell_Click(sender As Object, e As EventArgs) Handles AddWell.Click 
    CrewSelection = ComboBox1.SelectedItem 
    WellSelection = WellNameText.Text 
    Form1.go_Progress_Bar() 
    Close() 
End Sub 

최종 클래스

관련 문제