2013-06-16 2 views
2

데스크톱 응용 프로그램에 대해 vb.net에서 함수를 작성하여 문서를 완전히 저장 한 다음 System.Threading.Timer로 구현했습니다.Microsoft Office BeforeCloseHandler

나는 당신이 그것을 어떻게 경험했는지에 대해 부탁합니다.

그래서 저는 닫을 때까지 문서를 저장하는 타이머를 만들었습니다.

그러나 타이머없이 테스트 할 때 함수 나 처리기를 한 번만 호출하면 저장 여부를 묻는 대화 상자가 나타나기 때문에 문서가 닫히기 전에 저장되지 않습니다.

타이머가 실제로 필요합니까? 왜냐하면 타이머가 시스템을 1 밀리 초 지연시킬 수 있다는 것을 알고 있기 때문입니다.

타이머를 100 밀리 초로 설정했습니다.

그러나 저는 타이머를 사용하고 싶지 않습니다. 함수를 한 번만 호출하면 닫히기 전에 문서를 저장하고 싶습니다.

정말 타이머를 사용하고 있습니까? 또는 하나의 통화 설정으로 완료 할 수 있습니까?

하나의 함수 호출로 수행 할 수 있다면 코드가 누락 된 것 같습니다.

의견을 보내 주셔서 감사합니다.

+0

이 VBA 또는 VB.net입니까? – enderland

+0

@enderland, VB.net을 사용하여 요청 해 주셔서 감사합니다. – XXXXXXXXXXXXXX

답변

1

FormClosing 이벤트를 처리 할 수 ​​있습니다. 처리기에서 양식을 닫기 전에 작업을 수행 할 수 있으므로 닫는 이벤트를 취소 할 수도 있습니다. 다음은 예입니다 :

Dim Saved As Boolean = False 

Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing 
    If Not Saved Then 
     Dim Result As DialogResult = MessageBox.Show("Do you want to save your text?", "Save Text?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) 
     Select Case Result 
      'Since pressing the No button will result in closing the form without 
      'saving the text we don't need to handle it here 
      Case Windows.Forms.DialogResult.Yes 

       SaveText_Click() 
      Case Windows.Forms.DialogResult.Cancel 
       e.Cancel = True 
     End Select 
    End If 
End Sub 

Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged 
    Saved = False 
End Sub 
'SaveText is a button for the user to manually save the text on demand. 
'Since we don't need the sender or the eventargs, we can handle the click event without them. 
'this way we can call this like any sub without having to worry about providing the right parameters. 
Private Sub SaveText_Click() Handles SaveText.Click 
    'Add your procedure to save the text here 
    Saved = True 
End Sub 

당신이 옵션을 그냥 저장하지 않고 닫습니다하지 않으려면

는 메시지 박스와 선택 블록을 생략하고 그냥 거기에 데이터를 저장하는 SaveText을 (전화) 및 코드를 포함한다.

+0

그게 진짜 대답은 아니지만 도움을 주셔서 감사합니다. > Microsoft Office BeforeCloseHandler – XXXXXXXXXXXXXX

+0

응용 프로그램이 닫히기 전에 문서를 저장하고 싶지 않으므로 질문을 나타내는 것처럼 보였으므로 문서를 닫을 때 문서를 자동 저장하려고한다고 가정합니다. 이는 쉽게 저장할 수있는 매개 변수를 허용하는 [Document.Close 메서드] (http://msdn.microsoft.com/en-us/library/af6z0wa2%28v=vs.100%29.aspx)에서 수행 할 수 있습니다. 문서를 저장하십시오. – tinstaafl

관련 문제