첫째, VB.net에 대한 진정한 이해가 없지만 CAD 소프트웨어 MicroStation 용 VBA 프로그래밍을 수행했습니다. 나는 다른 프로그래머의 VB 코드를 상속 받았으며 많은 도움을줌으로써 몇 가지 변화를 만들었지 만 현재의 문제를 가지고 있습니다 ...양식 사용 후 계속하는 방법?
사용자가 프로그램을 다시 실행하려면 버튼을 클릭하거나 닫으려면 양식을 추가했습니다. 완전히 닫거나 파일을 닫고 만든 파일을 엽니 다. 처음 두 옵션은 작동하지만 마지막 명령은이 특정 Sub 내에서만 작동하는 명령을 사용하여 양식을 호출 한 후 계속 진행해야합니다. VBA에서는 If 문을 정의하여 건너 뛰지 않으면 'OpenFile'버튼을 클릭했는지 확인합니다. 그렇지만 VB에서는 알아 내지 못합니다. 필사적으로 나는 폼 버튼에 GOTO를 정의하려고 시도했지만 특정 서브 GOTO MakeFile (OpenFileHere)에 다시 연관시키는 방법을 모르겠다. 여기서 MakeFile은 sub이고 'OpenFileHere'는 라인 마커이다. 누구든지 내가해야 할 일을 제안하거나 프로세스를 따르기 위해 예를 들어 설명해 줄 수 있습니까?
Dim strFullName As String
If Right(Trim(strPath), 1) <> "\" Then
strPath = strPath & "\"
End If
strFullName = strPath + strName
If UCase(strFullName) = UCase(MSApp.ActiveWorkspace.ConfigurationVariableValue("_DGNFILE", True)) Then
MsgBox("Cannot Create file as this is the currently open file!", vbOKOnly, "File Create")
Exit Sub
End If
If MakeFolderPath(strPath) = True Then
If System.IO.File.Exists(strFullName) Then
If MsgBox("File Exists - Overwrite?", vbOKCancel, "File Create") = vbCancel Then
Exit Sub
End If
End If
System.IO.File.Copy(seed, strFullName, True)
'#############################################################
'### following line is used to open the newly created file ###
' MSApp.CadInputQueue.SendCommand("newfile " + strFullName)
MakeAnother.Modal.Equals(True)
MakeAnother.Show()
End If
OpenFileHere:
If MakeFile.OpenThisFile = "defined" Then
MsgBox("made it through")
MSApp.CadInputQueue.SendCommand("newfile " + strFullName)
End If
왜 두 개의 messagebox를 사용하지 않습니까? 그/그녀가 프로그램을 실행하기를 원한다면 먼저 질문하고, 대답이 "아니오"이면 파일을 여는 것에 대해 다시 묻습니다. –
그럴 수는 있겠지만 약간은 어색해 보입니다. 나는 그것이 더 전문적으로 보이길 원합니다. 코드 끝에있는 msgbox는 단지 IF로 만든 것을 확인하기위한 디버깅을위한 것입니다. – mark