Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: C++/CLI mit .NET ::  Windows Form beim aufruf der 2ten Form beenden  
Gehen Sie zu Seite Zurück  1, 2, 3  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
inflames2k
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.06.2009
Beiträge: 742
Beitrag inflames2k Mitglied 10:00:03 24.04.2012   Titel:              Zitieren

Wie wäre es das Login-Form aus dem Hauptformular aufzurufen? Das wäre zumindest der korrekte Weg.

_________________
Ich will kein For ech. Ich will wissen was dahinter steckt, sonst stehe ich immer wieder vor dem Problem...

Das ist dreckige kapitalischtische Scheisse!!!
^bnL
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.04.2012
Beiträge: 18
Beitrag ^bnL Mitglied 11:43:11 24.04.2012   Titel:              Zitieren

inflames2k schrieb:
Wie wäre es das Login-Form aus dem Hauptformular aufzurufen? Das wäre zumindest der korrekte Weg.


Darauf habe ich es inzwischen auch umgebaut.

Login Hide usw Funktioniert auch ohne Probleme.Allerdings bisher bei der Main nicht. Jedoch war des gestern auch nur auf die schneller noch gemacht. Muss da Heute mal genauer schauen.Denke,dass ich da einfach vor lauter Schlafmangel nicht richtig aufgepasst habe und dadurch einen Layer 8 Fehler eingebaut habe :D
^bnL
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.04.2012
Beiträge: 18
Beitrag ^bnL Mitglied 18:11:16 24.04.2012   Titel:              Zitieren

Leider kein Erfolg. Ich kann alles(Login Form,menustrip,button usw) Hiden bis auf die von main() aufgerufene Form (in diesem Fall MainView).

Ich versuche nochmals es passend zu beschreiben was ich vorhabe.

Gegeben:

- MainView Form (wird direkt von Main aufgerufen)
- Login Form( wird durch eine Form_Load Funktion aufgerufen)

Der aufruf der beiden Formen funktioniert ohne Probleme. Nun möchte ich jedoch die MainView erst einblenden lassen,wenn der Login Erfolgreich war ( abfrage steht hierfür statisch bisher). Sprich "Login Erfolgreich, weiterleitung zu -> MainView).

Jedoch lässt sich leider MainView aus welchen Gründen auch immer nicht verstecken/ausblenden, wahtever...

Hat einer noch eine Idee bzw kann die Vermutung von mir bestätigen, dass man eine von Main() aufgerufene Form nicht verstecken kann ?!

Vielen Dank!
Th69
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.03.2008
Beiträge: 2587
Beitrag Th69 Mitglied 19:23:29 24.04.2012   Titel:              Zitieren

Du brauchst nur die Login-Form mittels ShowDialog(this) aufzurufen, dann blockiert dieser Aufruf solange, bis der User diesen Dialog schließt und danach geht es dann im Ablauf weiter und die MainForm wird angezeigt.

Besser finde ich jedoch, wenn in der Main zuerst der Aufruf des Login-Dialogs erfolgt und danach dann erst die Main-Form mittels Application.Run aufgerufen wird.
inflames2k
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.06.2009
Beiträge: 742
Beitrag inflames2k Mitglied 15:12:59 25.04.2012   Titel:              Zitieren

^bnL schrieb:

Hat einer noch eine Idee bzw kann die Vermutung von mir bestätigen, dass man eine von Main() aufgerufene Form nicht verstecken kann ?!


Eine aus Main mittels Application.Run aufgerufene Form kann ausgeblendet werden!

Beispiel:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
public partial class MyForm : Form
{
    protected overwrite void OnShown()
    {
        this.Visible = false;
        DialogResult result = DialogResult.Cancel;
        do
        {
            result = MyLoginForm.ShowDialog();
        }while(result != DialogResult.OK);
        this.Visible = true;
    }
}

_________________
Ich will kein For ech. Ich will wissen was dahinter steckt, sonst stehe ich immer wieder vor dem Problem...

Das ist dreckige kapitalischtische Scheisse!!!
^bnL
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.04.2012
Beiträge: 18
Beitrag ^bnL Mitglied 18:05:23 25.04.2012   Titel:              Zitieren

Vielen Dank zuallererst an euch Beide !

Th69 schrieb:
Du brauchst nur die Login-Form mittels ShowDialog(this) aufzurufen, dann blockiert dieser Aufruf solange, bis der User diesen Dialog schließt und danach geht es dann im Ablauf weiter und die MainForm wird angezeigt.

Besser finde ich jedoch, wenn in der Main zuerst der Aufruf des Login-Dialogs erfolgt und danach dann erst die Main-Form mittels Application.Run aufgerufen wird.


Wenn der User jedoch abbricht, wird ihm die MainView angezeigt. Jedoch müsste man diese Aktion mittels einer if abfrage abfangen können,oder ?

@inflames2k :

Mit den anpassungen an meine Form, spruckt der Compilier mir jede Menge Meldungen aus. (werde diese alle weiter unten Posten). Jedoch ist aus meiner Sicht momentan das Problem,dass Hide bzw visable = flase nicht greift.

C++:
this.viable = false


Spruckt folgendes aus

Zitat:
All outputs are up-to-date.
1> Login.cpp
1>c:\users\marcus\documents\ipx\zentraldockma\client\client\Main.h(22): error C2228: left of '.Visible' must have class/struct/union
1> type is 'Client::Main ^const '
1> did you intend to use '->' instead?


Wenn ich dieser Anweisung folge und den Punkt auswechsel kommt keine Meldung mehr,aber die Anweisung wird auch nicht umgesetzt.

Wie oben angesprochen die Meldungen des Compiliers mit der Methoden deklaration der Class.

Zitat:
1>c:\users\marcus\documents\ipx\zentraldockma\client\client\Main.h(27): error C2144: syntax error : 'void' should be preceded by ';'
1>c:\users\marcus\documents\ipx\zentraldockma\client\client\Main.h(27): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\marcus\documents\ipx\zentraldockma\client\client\Main.h(29): error C2228: left of '.Visible' must have class/struct/union
1> type is 'Client::Main ^const '
1> did you intend to use '->' instead?
1>c:\users\marcus\documents\ipx\zentraldockma\client\client\Main.h(30): error C2146: syntax error : missing ';' before identifier 'result'
1>c:\users\marcus\documents\ipx\zentraldockma\client\client\Main.h(30): error C2065: 'result' : undeclared identifier
1>c:\users\marcus\documents\ipx\zentraldockma\client\client\Main.h(30): error C2039: 'Cancel' : is not a member of 'System::Enum'
1> c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll : see declaration of 'System::Enum'
1>c:\users\marcus\documents\ipx\zentraldockma\client\client\Main.h(34): error C2065: 'result' : undeclared identifier
1>c:\users\marcus\documents\ipx\zentraldockma\client\client\Main.h(34): error C2228: left of '.ShowDialog' must have class/struct/union
1> type is 'Client::Login ^'
1>c:\users\marcus\documents\ipx\zentraldockma\client\client\Main.h(36): error C2065: 'result' : undeclared identifier
1>c:\users\marcus\documents\ipx\zentraldockma\client\client\Main.h(36): error C2039: 'OK' : is not a member of 'System::Enum'
1>c:\users\marcus\documents\ipx\zentraldockma\client\client\Main.h(37): error C2228: left of '.Visible' must have class/struct/union
1> Generating Code...
1>
1>Build FAILED.


Wo muss ich denn overwrite void OnShown() initialisieren( dies ist die erwähnte zeile)? Sorry, bin noch nicht solange an OOP dran bzw allgemein C++.

Danke für eure Hilfe !
theta
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.09.2008
Beiträge: 4079
Beitrag theta Mitglied 18:58:21 25.04.2012   Titel:              Zitieren

Der gezeigte Code kommt nicht ins Main, sondern in die Form!
Zweitens ist der geziegte Code C# und muss noch nach C++/CLI portiert werden, was aber kein Kopfzerbrechen verursachen sollte.
Th69
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.03.2008
Beiträge: 2587
Beitrag Th69 Mitglied 18:59:07 25.04.2012   Titel:              Zitieren

Daher auch mein Vorschlag mit dem sparaten Aufruf der Login-Form vor der MainView (so daß du mittels einer if-Anweisung den Aufruf steuern kannst).

Und inflames2k hat C#-Code gepostet, daher unter C++/CLI einfach Punkt "." durch Pfeil "->" (bzw. "::" bei Namensbereichen und statischen Methoden ;-) ersetzen...
Und die restlichen Syntaxfehler wirst du wohl alleine lösen können...
inflames2k
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.06.2009
Beiträge: 742
Beitrag inflames2k Mitglied 09:40:02 26.04.2012   Titel:              Zitieren

Sorry, beim Code hatte ich nicht mitgedacht, dass du ja in C++/CLI bist. Sollte jedoch kein Problem darstellen, den Code anzupassen.

Zu Th69's Vorschlag:
Geh doch einfach wie folgt vor:
- Anzeigen des Loginformulars
-> Zeige an solange keine erfolgreiche Anmeldung erfolgt ist (Ausnahme Abbruch)
- War der Login erfolgreich?
-> Schließe Loginformular und öffne Hauptformular
- Wurde der Login abgebrochen?
-> Beende Applikation

_________________
Ich will kein For ech. Ich will wissen was dahinter steckt, sonst stehe ich immer wieder vor dem Problem...

Das ist dreckige kapitalischtische Scheisse!!!
^bnL
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.04.2012
Beiträge: 18
Beitrag ^bnL Mitglied 18:32:09 27.04.2012   Titel:              Zitieren

sorry,dass ich mich erst so spät melde. Momentan nur zu viel um die Ohren...


inflames2k schrieb:
Sorry, beim Code hatte ich nicht mitgedacht, dass du ja in C++/CLI bist. Sollte jedoch kein Problem darstellen, den Code anzupassen.

Zu Th69's Vorschlag:
Geh doch einfach wie folgt vor:
- Anzeigen des Loginformulars
-> Zeige an solange keine erfolgreiche Anmeldung erfolgt ist (Ausnahme Abbruch)
- War der Login erfolgreich?
-> Schließe Loginformular und öffne Hauptformular
- Wurde der Login abgebrochen?
-> Beende Applikation


Ansich hatte ich es mir ja auch so gedacht. Nur dass Problem ist bei mir nur dass entsprechende schließen der Form wieder...

theta schrieb:
Der gezeigte Code kommt nicht ins Main, sondern in die Form!
Zweitens ist der geziegte Code C# und muss noch nach C++/CLI portiert werden, was aber kein Kopfzerbrechen verursachen sollte.


Der Code war aus der Header File (Main.h)der Form und nicht der Main Function.

Den rest des Abends werde ich noch eure Vorschläge versuchen. Vielen Dank!


Zuletzt bearbeitet von ^bnL am 22:21:44 28.04.2012, insgesamt 1-mal bearbeitet
c++.de :: C++/CLI mit .NET ::  Windows Form beim aufruf der 2ten Form beenden  
Gehen Sie zu Seite Zurück  1, 2, 3  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.