Problem mit der Einrichtung

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von Nofear23m.

    Problem mit der Einrichtung

    Hallo,

    bin neu hier und gleich mit einer Frage.
    Ich habe ein Main Form (in diesem Fall Nutzer)
    und mehrere weitere Form für Funktionen.

    Leider herrscht ein großes Problem -> Ich habe als Main Form die Nutzer damit der User seinen Namen / Email und wie er mit uns zusammenarbeitet angeben kann. Dies wird auch gespeichert.
    Da er dies nur einmalig machen soll habe ich gedacht...

    If abfrage nach den my.settings und dann Menü.show und me.hide (oder close)

    Leider ignoriert er diese abfrage ewig und selbst wenn Menü als main ist und nutzer "davor" geschoben werden soll bleibt Menü dann im Vodergrund..
    entweder bin ich grad dusselig oder ich finde den Fehler nicht...
    wenn mir jemand ein Tipp geben könnte wäre das super - suche auch schon ne weile nach dem Problem....


    Anbei auch der Code aus dem Nutzer Form

    VB.NET-Quellcode

    1. Imports System.ComponentModel
    2. Public Class Nutzer : Inherits Form
    3. Public Sub New()
    4. InitializeComponent()
    5. Partner.Items.Add("Handelspartner")
    6. Partner.Items.Add("Direkt")
    7. End Sub
    8. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    9. If Benutzername.TextLength = 0 Then
    10. MsgBox("Bitte dein Namen angeben!")
    11. Else
    12. If Benutzermail.TextLength = 0 Then
    13. MsgBox("Bitte E-Mail Adresse angeben!")
    14. Else
    15. If My.Settings.Partner = Nothing Then
    16. MsgBox("Bitte Zusammenarbeit angeben!")
    17. Else
    18. My.Settings.Name = Benutzername.Text
    19. My.Settings.Email = Benutzermail.Text
    20. My.Settings.Save()
    21. My.Settings.Reload()
    22. Menü.Show()
    23. Me.Hide()
    24. End If
    25. End If
    26. End If
    27. End Sub
    28. Private Sub Partner_SelectedValueChanged(sender As Object, e As EventArgs) Handles Partner.SelectedValueChanged
    29. Partner.SelectedItem.ToString()
    30. My.Settings.Partner = Partner.Text
    31. My.Settings.Save()
    32. My.Settings.Reload()
    33. End Sub
    34. Private Sub Nutzer_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    35. If My.Settings.Name <> Nothing Then
    36. Menü.Show()
    37. Me.Hide()
    38. End If
    39. End Sub
    40. End Class



    Ich nutze aktuell Visual Stuido 2019 Community

    *Topic für die bessere lesbarkeit um Code-Tags erweitert - bitte CodeTags verwenden* ~NoFear23m

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nofear23m“ ()

    setzt mal als erstes vor dem imports... dieses rein: Option Strict On ( musste mich auch dran gewöhnen), damit siehst du dann schon mal etliche fehler im code selber, abgesehen davon das man immer damit Programieren sollte wegen sauberen Code...

    dann würde ich aus:

    Mc-Muffin schrieb:

    If Benutzername.TextLength = 0 Then
    MsgBox("Bitte dein Namen angeben!")
    Else
    If Benutzermail.TextLength = 0 Then
    MsgBox("Bitte E-Mail Adresse angeben!")
    Else
    If My.Settings.Partner = Nothing Then
    MsgBox("Bitte Zusammenarbeit angeben!")
    Else
    My.Settings.Name = Benutzername.Text
    My.Settings.Email = Benutzermail.Text
    My.Settings.Save()
    My.Settings.Reload()
    Menü.Show()
    Me.Hide()
    End If
    End If
    End If


    folgendes machen:

    VB.NET-Quellcode

    1. If Benutzername.TextLength = 0 Then
    2. MsgBox("Bitte dein Namen angeben!")
    3. ElseIf Benutzermail.TextLength = 0 Then
    4. MsgBox("Bitte E-Mail Adresse angeben!")
    5. Else
    6. My.Settings.Name = Benutzername.Text
    7. My.Settings.Email = Benutzermail.Text
    8. My.Settings.Save()
    9. My.Settings.Reload()
    10. Menü.Show()
    11. Hide()
    12. End If


    und das hier:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    in

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    ändern

    und nochmals testen.
    Hi,

    erstmal danke für die etwas optimierte Programmierweise :)

    Text sieht jetzt wie folgt aus:

    VB.NET-Quellcode

    1. ​Option Strict On
    2. Imports System.ComponentModel
    3. Public Class Nutzer : Inherits Form
    4. Public Sub New()
    5. InitializeComponent()
    6. Partner.Items.Add("Handelspartner")
    7. Partner.Items.Add("Direkt")
    8. End Sub
    9. Private Sub Nutzer_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    10. If My.Settings.Name <> Nothing Then
    11. Menü.Show()
    12. Me.Hide()
    13. End If
    14. End Sub
    15. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    16. If Benutzername.TextLength = 0 Then
    17. MsgBox("Bitte dein Namen angeben!")
    18. ElseIf Benutzermail.TextLength = 0 Then
    19. MsgBox("Bitte E-Mail Adresse angeben!")
    20. ElseIf My.Settings.Partner = Nothing Then
    21. MsgBox("Bitte Zusammenarbeit angeben!")
    22. Else
    23. My.Settings.Name = Benutzername.Text
    24. My.Settings.Email = Benutzermail.Text
    25. My.Settings.Save()
    26. My.Settings.Reload()
    27. Menü.Show()
    28. Hide()
    29. End If
    30. End Sub
    31. Private Sub Partner_SelectedValueChanged(sender As Object, e As EventArgs) Handles Partner.SelectedValueChanged
    32. Partner.SelectedItem.ToString()
    33. My.Settings.Partner = Partner.Text
    34. My.Settings.Save()
    35. My.Settings.Reload()
    36. End Sub
    37. End Class


    Leider hat sich an dem Problem nichts geändert.
    Es sieht nun wie folgt aus -> Splashscreen öffnet sich -> Dann startet trotz Daten ( Name etc. sind gespeichert von erstanmeldung) die Nutzerform - und darunter der Menüform..
    Es wirkt eher so als würde das Hide ignoriert werden. wenn ich close eingebe bekomme ich den fehler das in Menüform - Nutzer nicht gefunden werden konnte.
    Also scheint der Fehler ja im Nutzerform zu liegen.
    hm... dran gedacht, die Form mal auf 2 auzusplitten?

    am besten postete du mal ein paar screenshost von den problem, damit mal es auch mal visuell sehen kann
    Willkommen im Forum.

    Mc-Muffin schrieb:

    Dann startet trotz Daten ( Name etc. sind gespeichert von erstanmeldung) die Nutzerform - und darunter der Menüform..
    So wie es auch codiert hast:

    VB.NET-Quellcode

    1. Private Sub Nutzer_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. If My.Settings.Name <> Nothing Then
    3. Menü.Show()
    4. Me.Hide()
    5. End If

    Ist das Nutzerform als Startform eingestellt? Siehe Projekteigenschaften -> Anwendung
    btw: Dialoge richtig instanziieren!
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    VB6 und .NET 4.5 gehen nur sehr schwer zusammen !
    Sicher daß du VB6 meinst ? Ich denke eher nicht.

    Ich empfehle dir ersteinmal keinen code zu schreiben, sondern sich in die Grundlagen einzulesen !
    Anbei ein paar Screenshots..
    (Habe mal Logo und Namen geschwärzt / ist ein Hobbyprojekt zum lernen welches aber nützlich sein soll [kostenlos])

    de.share-your-photo.com/c5dc6ea3da

    Splash

    share-your-photo.com/c3df0ed327
    Nutzer
    share-your-photo.com/6aa002a304
    share-your-photo.com/6aa002a304
    Menü :)




    Ja Nutzerform ist als Startform eigestellt -> andersherum habe ich das gleiche Problem (s.o)

    @Drachie - auf 2 Form aufsplitten würde wenig sinn ergeben. Da die Form ja nur 1mal nach Installation aufgerufen wird.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mc-Muffin“ ()

    Nutze für Bilder bitte die foreninterne Uploadfunktion, die wenigsten hier haben lust, potenzielle Malware Links anzuklicken.
    Und zwar geht das über [+ Erweiterte Antwort].
    Deine Screenshots sagen uns was? Drachie hatte wohl Problemanzeigescreenshots gemeint.

    Mc-Muffin schrieb:

    Ja Nutzerform ist als Startform eigestellt -> andersherum habe ich das gleiche Problem

    Moment. Das Ganze wird hier aber n bisken fahrig. Also: eigentlich ist das die total falsche Herangehensweise. Das Nutzermenü soll nur angezeigt werden, wenn in den Settings nichts drinsteht. Aber das Menü soll nur angezeigt werden, wenn was drinsteht. Das heißt: Keines davon ist als Startform sinnvoll. Falls Du das aber so beibehalten willst, müsstest Du Menü als Startform setzen und dann Nutzerform automatisch anzeigen lassen, wenn nix in den Settings drinsteht.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @FormFollowsFunction

    Da ich der Fragesteller bin, bemühe ich mich hier aufgrund dessen das ich mir Hilfe erhoffe allen gerecht zu werden.
    aber kurz offtopic...
    VB6 und .NET 4.5 gehen nur sehr schwer zusammen !Sicher daß du VB6 meinst ? Ich denke eher nicht.Ich empfehle dir ersteinmal keinen code zu schreiben, sondern sich in die Grundlagen einzulesen !


    - Fällt mir nix nettes zu ein. Ich habe mich für meinen Weg entschieden und sitze jeden Tag lang genug daran und versuche mich überall einzulesen - respektieren und nicht sinnlos schreiben.

    Nutze für Bilder bitte die foreninterne Uploadfunktion, die wenigsten hier haben lust, potenzielle Malware Links anzuklicken.


    - Wenn ich hier Malwarelinks hochladen würde - wäre mir null geholfen. Ob ich es hier hochlade oder woanders. Mein Ding - Daher bitte ich dich auf sinnlose Kommentare die nicht die frage betreffen zu verzichten. Danke

    Mc-Muffin schrieb:

    ist ein Hobbyprojekt zum lernen welches aber nützlich sein soll
    Das sieht mir aber nicht so aus, es sei denn, ich bin wieder mal der einzige, der zu Hause nicht mit SAP arbeitet :!:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @VaporiZednull
    Ich hätte ja Problemeanzeige Screenshots gemacht - aber außer das es halt voreinander steht und keines von beiden (je nachdem welches als Startform gewählt wird) sich me.hide lassen lässt - sieht man nicht sehr viel.
    Ich vermute ja das es ein Codeproblem ist. Leider hänge ich an dieser Stelle.. weswegen ich ja hier nachgefragt habe.

    Das heißt: Keines davon ist als Startform sinnvoll. Falls Du das aber so beibehalten willst, müsstest Du Menü als Startform setzen und dann Nutzerform automatisch anzeigen lassen, wenn nix in den Settings drinsteht.


    Das Menü greift den Nutzernamen auf - weswegen ich es als Folgeform angesehen habe. Wenn ich Menü allerdings als Startform setze und dann Nutzer anzeigen lassen will - legt er mir Menüform dennoch über Nutzerform.
    Komisch hierbei ist aber das wenn Nutzer zuerst starte und ich "weiter" - also den Button drücke alles wie gewollt abläuft...
    @Mc-Muffin: Wenn Nutzer dauerhaft über Menü liegen soll, dann - wie in Post#5 verlinkt - nutze .ShowDialog(Me).
    Also in Menü:

    VB.NET-Quellcode

    1. Private Sub Menü_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
    2. If Not String.IsNullOrEmpty(My.Settings.Name) Then Exit Sub
    3. Using DlgNutzer As New Nutzer
    4. Me.Hide 'falls überhaupt
    5. DlgNutzer.ShowDialog(Me)
    6. End Using
    7. End Sub

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @RodFromGermany

    Das Programm nutze ich da ich von zuhause auf Firmenrechner zugreifen möchte und zu faul bin die Daten immer einzugeben :)
    Also nix wildes - hätte ich auch ne Bat für schreiben können ^^


    @VaporiZed

    Vielen Lieben Dank - ich habe es mit deiner Hilfe hinbekommen - und kann mich jetzt wieder den anderen arbeiten am Programm widmen :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mc-Muffin“ ()

    Mc-Muffin schrieb:

    Also nix wildes
    Dann schreib die BAT.
    Deine Aussagen und Deine Bilder passen nicht zusammen. X(
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo @Mc-Muffin

    Mc-Muffin schrieb:

    Ob ich es hier hochlade oder woanders. Mein Ding - Daher bitte ich dich auf sinnlose Kommentare die nicht die frage betreffen zu verzichten.

    Tatsächlich gibt es in den Forenregeln nichts eindeutiges was dies verbieten würde. Allerdings geht es am Sinn einer Community vorbei wenn hier in naher Zukunft mal jemand vorbeikommt der das selbe Problem hat und die Bilder nicht ansehen kann da diese am externen Hoster bereits gelöscht wurden. Mit der forumsinternen Funktion bleiben die Bilder erhalten solange es den Thread auch gibt.

    @Mc-Muffin, du hast bestimmt sicher auch schon mal über die Suchmaschine deiner Wahl etwas im Netz in einem Forum gefunden was dir weitergeholfen hat oder? In diesem Fall freust du dich sicher auch wenn die Bilder dann auch noch vorhanden sind. In diesem Sinne. Miteinander!!

    Da du dein Problem gelöst hast schliesse ich diesen Thread nun aufgrund des doch etwas rauhem Ton.

    *Thread closed* ~NoFear23m
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##