Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor .NET
  AddIn Windowsform verschwindet

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  AddIn Windowsform verschwindet (762 mal gelesen)
Colli123
Mitglied
Maschinenbau Student


Sehen Sie sich das Profil von Colli123 an!   Senden Sie eine Private Message an Colli123  Schreiben Sie einen Gästebucheintrag für Colli123

Beiträge: 32
Registriert: 18.10.2014

Inventor 2013
Visual Studio 2010

erstellt am: 19. Dez. 2014 16:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Zusammen!

Ich bin gerade dabei ein AddIn zu schreiben und es tauchen Probleme mit Windowsforms auf die ist bisher nicht gab, wenn man den Code nicht als AddIn sondern über Visual Studio selber startet.
Wenn z.B. eine Windowsform über das rote X Kästchen geschlossen wird. Dann lässt es sich nicht mehr öffnen. Ich hab in einem anderen Post gelesen das man dem X Kästchen den befehl Hide einfügen soll, dann lässt sich die Form später wieder aufrufen. Allerdings hab ich noch keine Möglichkeit gefunden das zu implentiere ohne das Inventor beim starten abstürzt.
Momentan sieht mein Code so aus:
Die Hilfsform öffnet die eigentliche Form_Groß. Wenn ich in der Klasse Form_Groß ein Objet der Hilfsform erstelle um FormGroßVerstecken auszuführen dann hängt sich Inventor beim Starten auf. Aus irgendeinen Grund darf das Objekt nicht Dim oHilfsform nicht angelegt werden.
Gibt es vllt eine andere Möglichkeit das .Hide() auszuführen? Oder vllt sogar eine komplett andere Möglichkeit ohne das man .Hide() braucht?

Code:
Public Class Form_Hilfsform
    Dim oFormGroß As New Form_Groß

    Public Sub Funktion_FormGroßVerstecken()
        oFormGroß.Hide()
    End Sub

    Public Sub Funktion_Form_GroßAufrufen()
        oFormGroß.Show()

    End Sub
End Class



Code:
Public Class Form_Groß
    ''Der selbe Kommentar für Dim oFormGroß gilt auch für Dim oHilfsform
    'Dim oHilfsForm As Form_Hilfsform = New Form_Hilfsform()
    ''Eine objekt einer Klasse in derselben Klasse zu erstellen, wird nicht als Fehler in VisualStudio angezeigt, führt aber dazu das
    ''Inventor beim Start aufhängt. Also Vorsicht!
    'Dim oFormGroß As Form_Groß = New Form_Groß()


    ''Wenn eine WindowsForm im AddIn regulär über das rote X Kästchen geschlossen, lässt sich die Form nicht mehr öffnen.
    ''Das lässt sich vielleicht umgehen wenn man die Befehle des roten X Kästchens verändert
    'Private Sub Form_Groß_FormClosing(sender As System.Object, e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
    '    oHilfsForm.Funktion_FormGroßVerstecken()
    'End Sub
End Class


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Colli123
Mitglied
Maschinenbau Student


Sehen Sie sich das Profil von Colli123 an!   Senden Sie eine Private Message an Colli123  Schreiben Sie einen Gästebucheintrag für Colli123

Beiträge: 32
Registriert: 18.10.2014

Inventor 2013
Visual Studio 2010

erstellt am: 01. Jan. 2015 15:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ich hab jetzt herausgefunden wie man vorgefertigten roten-X Close Button überschreibt. Allerdings kommt auch wenn man die WindowsForm mit Me.Hide() versteckt die Fehlermeldung:
"''************** Ausnahmetext **************
''System.ObjectDisposedException: Auf das verworfene Objekt kann nicht zugegriffen werden. Objektname: "Form_InfoBahnerstellen"."
Kennt jmd noch eine andere Möglichkeit außer den .Hide() Befehl?
Woran liegt das, dass laut Fehlermeldung, auf das Objekt nicht mehr zugegriffen werdne kann, bzw warum wird nicht einfach ein neues Form-Objekt erstellt?

Code:
Public Class Form_InfoBahnerstellen
Private Sub Form_InfoBahnerstellen_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Form_InfoBahnerstellen_FormClosing(sender As System.Object, e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
MsgBox("Close button reagiert")
''Trotz Me.Hide() wird die form beim nächsten mal nicht mehr geöffnet bzw das objekt nicht mehr gefunden, siehe Ausnahmetext vom Debugger
''************** Ausnahmetext **************
''System.ObjectDisposedException: Auf das verworfene Objekt kann nicht zugegriffen werden.
''Objektname: "Form_InfoBahnerstellen".
'Me.Hide()
End Sub
End Class

[Diese Nachricht wurde von Colli123 am 01. Jan. 2015 editiert.]

[Diese Nachricht wurde von Colli123 am 01. Jan. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Colli123
Mitglied
Maschinenbau Student


Sehen Sie sich das Profil von Colli123 an!   Senden Sie eine Private Message an Colli123  Schreiben Sie einen Gästebucheintrag für Colli123

Beiträge: 32
Registriert: 18.10.2014

Inventor 2013
Visual Studio 2010

erstellt am: 01. Jan. 2015 17:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Nach langem random Rumprobieren hab ich zufällig rausgefunden worans liegt.
Man darf die Objekte um Windowsforms aufzurufen nur in der der Button-Click-Sub Instanziieren. Jetzt können die Fenster ohne Probleme mehrmals geöffnet und geschlossen werden.

Code:
Public Class Form_Groß
    ''Wichtig! Objekte in den Subs Instanzzieren. Nicht hier vor den Subs z.B.
    ''Dim oForm_Bahnerstellen As Form_Bahnerstellen = New Form_Bahnerstellen
    ''Sonst können WindowsForms nach dem schließen nicht mehr geöffnet werden

    Private Sub Button1_Click_1(sender As System.Object, e As System.EventArgs) Handles ButtonBahnerstellen.Click
        Dim oForm_Bahnerstellen As Form_Bahnerstellen = New Form_Bahnerstellen
        oForm_Bahnerstellen.Show()
    End Sub
End Class


[Diese Nachricht wurde von Colli123 am 01. Jan. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz