2013-10-29 2 views
0

나는 어떤 종류의 퀴즈를 만들고 있습니다. 나는 무작위 화자를 만들었다. 그래서 하나의 질문 (폼)이 튀어 오르고 오른쪽 답을 클릭하면 새로운 폼이 나타납니다. 여기에서 하나의 레이블과 버튼을 사용하여 계속 진행하십시오. 계속 버튼을 클릭하면 다음 질문 (양식)이 튀어 나오지만 이전 양식도 닫으려고하지만 그 이름이나 할 일을 어떻게 알지 못합니다.VB.Net 무작위로 선택된 양식을 닫는 방법

Dim rn As New Random 
TextBox1.Text = rn.Next(1, 4) 

If TextBox1.Text = 1 Then 
    Form4.Show() 
    Form4.Timer1.Start() 
End If 
If TextBox1.Text = 2 Then 
    Form7.Show() 
    Form7.Timer1.Start() 
End If 

If TextBox1.Text = 3 Then 
    Form8.Show() 
    Form8.Timer1.Start() 
End If 
If TextBox1.Text = 4 Then 
    Form12.Show() 
    Form12.Timer1.Start() 
End If 

답변

0

결과 양식에 대한 질문 참조. 그런 다음 다음 질문을 열기 전에 이전 질문에 대해 Close() 메소드를 호출 할 수 있습니다.

+0

나는 이미 그것을 가지고 있지만 계속하려면 클릭 할 때 닫으려고합니다 ... – user2932903

+0

button-click 이벤트에 대한 이벤트 처리기를 추가하고 거기에서 이전 양식의 Close()를 호출하십시오. – Markus

0

새 양식을 열기 전에 모든 양식을 닫는 루틴은 어떻습니까?

양식을 열지 않아도 양식을 말하면서 가장 좋은 방법은 아닙니다. 그러나 그것은 당신이 요구하는 것을 할 것입니다.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Dim rn As New Random 
    Dim randomForm As UInteger = rn.Next(1, 3) 'Random Form Number 
    TextBox1.Text = randomForm 'Store the Random Number here 

    closeQuestionForms() 'Routine called before opening others 

    Select Case randomForm 
     Case 1 
      Form2.Show() 
      'Do something else here 
     Case 2 
      Form3.Show() 
    End Select 

End Sub 


Private Sub closeQuestionForms() 'Closes the forms 
    Form2.Close() 
    Form3.Close() 
    MessageBox.Show("Closed Question Forms") 
End Sub 

는 다시, 아마 다른 답변을 보여줄 수있는 더 좋은 방법이 있습니다 : 여기

은 예입니다. 그러나이 방법은 잘 작동합니다.

+0

나는 다른 것을했다. 그래서 항상 시작 메뉴를 열고 질문을합니다. 나는 메뉴를 시작하기 위해 체크 박스를 추가하고 (보이지 않도록) 코드가 있다면 쓴다. 버튼을 계속하려면 I 추가 : 만약 진정한 Form1.CheckBox2.Checked = 다음 Form4.Close() 최종면 하면 진정한 Form1.CheckBox3.Checked = 다음 Form7.Close() 종료 만약의 경우 Form1.CheckBox4 = true의 경우 Form8.Close() 종료 .checked를하면 Form1.CheckBox2.Checked = 거짓 Form1.CheckBox3.Checked = 거짓 Form1.CheckBox4.Checked = 거짓 어쨌든 도움을 주셔서 감사합니다 ... – user2932903

관련 문제