vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Problem Delegates Invoke bei Form 
Autor: Hein_nieH
Datum: 16.09.15 13:24

Hallo,

ich komme nicht weiter.
Ich habe in VB.Net ein Formular und möchte via Button jeweils eine neue Worddatei öffnen.
Das geht auch ohne Probleme.
Weiterhin möchte ich das WordApplication-Objekt auswerten, d.h. bei einem Change_Ereignis
soll der Name der aktiven Datei in einem Label dargestellt werden.
Hierzu muss mit Delegates und Invoke gearbeitet werden.
Auch das geht, wenn die Word-dateien nicht via Button_Ereignis und Delegates geoeffnet werden.


Nun mein Problem:
In der Button-Ereignis-Routine kann ich die erste Word-Datei Problemlos öffnen.
Auch auf das Change-Ereignis wird reagiert.
Wenn ich aber das zweite mal über den selben Button eine (andere) Worde-Datei öffnen möchte,
dann hängt sich das Formular nach dem Öffnen der zweiten Worddatei auf.
Lösche ich die Delegate Sub, dann gibt es auch bei wiederholten Öffnen keine Probleme.
Ich vermute es gibt zwischen dem Delegates und der Button_Click-Ereignismethode einen Konflikt.

Um mein Problem darzustellen, habe ich einen heruntergebrochenen Beispielcode dargestellt
Benötigt wird ein Formular (frmTestTest.vb). Darauf befindet sich ein Button(Button1) und ein Label(lblTest).

Wer kann mir helfen? Ich bin mit meinem bescheidenen Latein am Ende.
Gruss Hein_nieH


Option Explicit On
Imports Microsoft.Office.Interop
Imports System.Windows.Forms
Imports System.IO
'**********************************************
'****
'****   Problem mit Delegate Invoke
'****   beim oeffnen der zweiten Datei
'****   Form haengt sich auf ohne Exception
'****
'**********************************************
Public Class frmTestTest
    Private Delegate Sub DelSetTextLabel(ByVal lblText As String)
    Private appWord As Word.Application
    Private docWord As Word.Document
    Private folder As String
    Private counter As Byte
 
    Public Shared Sub Main()
        frmTestTest.Show()
    End Sub
 
    Private Sub frmTestTest_Load(ByVal sender As Object, _
                                     ByVal e As System.EventArgs) Handles _
                                     MyBase.Load
        lblTest.Text = "Test"
        folder = Environment.GetFolderPath(Environment.SpecialFolder.Personal) _
          'Eigene Dateien
        appWord = New Word.Application
        appWord.Visible = True
        AddHandler appWord.DocumentChange, AddressOf DocEvent
        'wenn die Word-Dokumente hier (ohne Button) geladen werden geht alles
        'docWord = appWord.Documents.Open(folder & "\" & "AAATest_1.docx")
        'docWord = appWord.Documents.Open(folder & "\" & "AAATest_2.docx")
        'docWord = appWord.Documents.Open(folder & "\" & "AAATest_3.docx")
    End Sub
 
    Private Sub DocEvent()
        Dim text As String
        text = appWord.ActiveDocument.Name
        Me.Invoke(New DelSetTextLabel(AddressOf setLabelText), text)
    End Sub
 
    Private Sub setLabelText(ByVal lblText As String)
        lblTest.Text = lblText
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        counter += 1
        If counter = 1 Then docWord = appWord.Documents.Open(folder & "\" & _
          "AAATest_1.docx")
        If counter = 2 Then docWord = appWord.Documents.Open(folder & "\" & _
        "AAATest_2.docx") 'nach dem laden hängt das Formular
        If counter = 3 Then docWord = appWord.Documents.Open(folder & "\" & _
        "AAATest_3.docx")
    End Sub
 
End Class


Beitrag wurde zuletzt am 16.09.15 um 13:38:57 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Problem Delegates Invoke bei Form1.396Hein_nieH16.09.15 13:24
Re: Problem Delegates Invoke bei Form741Manfred X16.09.15 16:00
Re: Problem Delegates Invoke bei Form672Hein_nieH16.09.15 17:44
Re: Problem Delegates Invoke bei Form814Manfred X16.09.15 17:51

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel