최대한 최선의 방법을 설명하려고합니다.예기치 않게 작동하는 양식
저는 수많은 양식이있는 Windows 양식 응용 프로그램을 보유하고 있습니다. 첫 번째 양식 인 을 여는 것은 모달 형식이며, 기본 서식 프로그램 인 에 다양한 형식을 발행하는 명령 형식의 역할을합니다. 두 번째 양식도 기본적으로 열립니다. 응용 프로그램의 기본 양식은 입니다. 이 양식에는 예약 프로그램을 변경하는 메서드를 실행하는 여러 확인란이 있습니다. 이 양식은 모덜리스입니다. 이 선택된 각 상자가 동시에 실행되고 아래의 res 프로그램을 삭제, 변경 및 추가하는 방법을 수행합니다. 주어진 시간에 다양한 상자를 확인할 수 있습니다. 다음은 에 코드가 체크 박스를 처리 할 수 있습니다 : 나는 위의 OWTMain 양식을 표시 다시 할 것이 시점에서
Private Sub frmOWTMain_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
If e.KeyCode = Keys.Enter Then
Me.Hide() 'here i want to hide the OWTMain form
Call ckforPNR()
If Me.cbPricing.Checked Then
Call doPricing()
Me.cbPricing.Checked = false
End If
If Me.cbUdids.Checked Then
frmUdids.Show()
Me.cbUdids.Checked = False
End If
If Me.cbMod.Checked Then
Call doModUdids()
End If
If Me.cbFare.Checked Then
Call doFareSavings()
Me.cbFare.Checked = False
End If
End If
Me.show() 'This is the problem. This runs during method calls. All I'm
'looking to do is re display the OWTMain form.
End Sub
. 이것은 문제가있는 입니다. 보시다시피, 많은 양식이 으로 불리며, 다른 양식을 사용자에게 표시하는 것을 포함합니다. 내가 원래 다른 프로그램에 의해 필요한 정보를 toview 프로그램에 명령을 발급 할 수있는 최초의 열린 된 양식을 원하기 때문에 이러한 양식 중 하나를 원하지 않습니다. 나는이 방법 중 하나를 호출 할 때
Private Sub doPricing()
Dim myPrice As New Pricing 'a call to another class that handles pricing
If myPrice.getTQT = False Then
frmAddPricing.ShowDialog() 'showing new forms
Else
frmCurPricing.ShowDialog()
End If
End Sub
Private Sub doFareSavings()
Dim myPrice As New Pricing
If myPrice.checkForFS = False Then
frmFS.ShowDialog() 'showing new forms
End If
If myPrice.checkForFS = True Then
frmFSVerify.ShowDialog()
End If
End Sub
의 형식은 OWTMain가 호출 된 방법에서 다른 형태가 계속 실행되는 중간에있는 동안 보여줍니다 여기에
는 호출하는 방법의 몇 가지 예입니다. 나는 상단에있는 코드가 을 호출 순서대로 실행할 것으로 예상했지만, 그렇지는 않습니다. 모든 코드를 실행 한 후에 OWTMain 양식을 다시 표시하기 만하면됩니다. 나는 창문을 열거 나 닫을 때 많은 양의 코드를 작성하지 않고 이걸 알아낼 수 없었다.이 문제에 도움을 주시면 매우 감사하겠습니다. 고맙습니다. John
를 추가합니다. 'Show'를 호출하여 첫 번째 양식을 모덜리스로 표시하고 'FormClosed' 이벤트를 처리합니다. 해당 이벤트 처리기에서 다음에 수행 할 작업을 결정하십시오. 다른 형태의 각각에 대해 그렇게하십시오. 마지막으로 FormClosed 이벤트가 발생하면 다시 원래 폼을 표시하십시오. – jmcilhinney
첫 번째 블록을 보면 :'chkbox가 체크 된 경우 // 어떤 일을하거나 // 체크를 해제하십시오. '이것이 바로 버튼의 작동 방식입니다. 그대로, 그것은 [SRP]에 맞지 않습니다. (http://en.wikipedia.org/wiki/Single_responsibility_principle) – Plutonix