Zwei Formulare gleichzeitig anzeigen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Zwei Formulare gleichzeitig anzeigen

    Moin,

    ich benötige zur selben Zeit zwei Formulare.

    Ziel ist es, aus dem Ursprungsformular den RtfEditor zu öffnen und daneben das Formular mit den Rezept Zutaten.

    Bei Variante 1 bockiert das RtfEditor Formular die Rezept Zutaten, bei Variante 2 wird RtfEditor Formular kurz angezeigt und gleich wieder geschlossen. (Variante 1 oder 2 sind aktiv, nicht beide zusammen)

    RtfEditor muss mit ShowDialog geöffnet werden, da ich beim Schließen des Formulars den Rückgabewert auf Änderungen überprüfen und speichern muss.

    VB.NET-Quellcode

    1. Dim Cell = .Rows(e.RowIndex).Cells(Tables.tbl_Recipes.Columns.RecipeText)
    2. Dim Value = If(Cell Is Nothing OrElse Cell.Value Is Nothing, String.Empty, Cell.Value.ToString)
    3. Dim Frm_Ingredients As New frm_Data_Food_RecipeIngredients(Me.Connection, ID, Nothing, Control.ModifierKeys = Keys.Control)
    4. Frm_Ingredients.Show(Me) 'Variante 1, Owner ist Ursprungsformular
    5. Using Frm As New frm_RtfEditor(Var,
    6. New frm_RtfEditor.Configuration.Data(Value),
    7. frm_RtfEditor.Configuration.EditMode.Values.RtfOnly,
    8. frm_RtfEditor.Configuration.TextMode.Values.AsRtf)
    9. Frm_Ingredients.Show(Frm) 'Variante 2, Owner = aufgerufenes Formular
    10. Frm.ShowDialog(Me)
    11. Cell.Value = If(Frm.Data.RealTextLenght = 0, String.Empty, Frm.Data.Text)
    12. If Not Value.Equals(Frm.Data.Text) Then tsb_Save.PerformClick()
    13. End Using
    14. 'With Frm_Ingredients
    15. ' .Close()
    16. ' .Dispose()
    17. 'End With



    Grüße :)
    Wenn Du mit Show arbeitest, sind aufrufendes und aufgerufendes Form zugänglich. Sobald aber ein Form mit ShowDialog dazukommt, bleibt dieser Dialog, bis er geschlossen wird. Du kannst keinen Dialog öffnen (Dialog = User wird gezwungen, sich für etwas zu entscheiden, bzw. auf dem Form eine Entscheidung zu treffen, also ein DialogResult abzugeben) und noch ein zweites Form gleichzeitig bearbeiten.
    Der Dialog ist dafür da, den weiteren Programmfluss quasi mitzusteuern. Daher: Muss der User eine Entscheidung treffen (dann muss der Dialog her) oder ist die Entscheidung optional (dann kein Dialog)?
    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.
    Die Funktionsweise von Dialog ist mir durchaus bewusst und so soll es auch sein.

    Der RtfEditor wird als Dialog geöffnet, alle anderen Formulare werden blockiert.

    Wenn der RtfEditor nicht als Dialog geöffnet wird, kann das Caller-Formular nicht auf die Rückantwort warten um geänderte Daten zu speichern.
    Der Rückgabewert müsste demnach vom RtfEditor aus an das Caller-Formular (beim Schließen) übergeben werden. Dann könnten x Formulare gleichzeitig über Show angezeigt werden, wobei keines davon etwas blockiert.

    Wäre das der sinnvolle Weg?
    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!
    Kannst Du mal beschreiben, welches konkrete Konstrukt Du versuchst zu errichten? Es geht um Back-/Kochrezepte, richtig? Es gibt ein Form mit Zutaten. Zutatenauswahl oder Zutateninfos? Wofür ist der Dialog? Freitext? Rezept als Prosaform?
    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.
    Kurz erklärt ...

    Formular Rezepte mit DGV. DGV enthält zusätzlich Button für Zutaten und Anleitung.

    Klick auf Anleitung Liest aktuellen RezeptText aus DGV Zelle, übergibt diesen an Formular RtfEditor und wartet, bis RtfEditor geschlossen wurde.
    Wenn der Text im RtfEditor geändert wurde, diesen zurück in die Zelle des Rezept DGVs schreiben und Speichern.

    Zusätzlich zum RtfEditor mit dem Text soll auch ein Formular mit den Zutaten geöffnet werden, um die Zutaten während man die Anleitung schreiben kann, sehen kann.
    @BlueLagoonX Das sind ja 3 Fenster.
    Parent über Alles: DGV.
    RtfEditor wird modal aufgerufen (ShowDialog()) und bekommt alle erforderlichen Informationen. DGV ist damit nicht bedienbar.
    Vom RtfEditor wird nicht modal (Show()) das Zutaten-Fenster geöffnet, Zutaten-Fenster und RtfEditor können gleichzeitig bedient werden.
    Wenn weitere Informationen aus dem DGV geholt werden müssen, geschieht das über Events.
    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!