Neue Form einbinden



  • Tja, dann ist "Window" eine leere Form. So einfach ist das.

    Beachte in welchem Namespace Deine gewünschte Form liegt und arbeite ein Grundlagenbuch durch.



  • Das würde ich gerne tun nur als Anfänger ist das bissel schwierig.

    Ich wäre sehr Nett wenn ich etwas Hilfe bekäme

    bei:

    void Tabelle(Object sender, EventArgs e)
            {
                form form1 = new form();
                form1.ShowDialog();
    

    bekomme ich eine Fehlermeldung das der Namespacename form nicht gefunden wurde



  • Jack3345 schrieb:

    Ich wäre sehr Nett wenn ich etwas Hilfe bekäme

    Und andernfalls wirst Du grantig? 😃

    Ich kann Dir dummerweise auch nicht sagen, wie der Namespace heißt, in der Deine andere Form liegt. Zeige halt endlich mal mehr Code oder löse Dein Problem selbst.



  • Hi

    ich möchte keineswegs grantig erscheinen
    wollte nur um etwas Hilfe bitten.

    Also der namenspace im Hauptprojekt heißt TZango

    in diesem Projekt habe ich ein 2. Projekt hinzugefügt mit Namen Tabelle

    dort stehen auch die Verweise usw. drin dann kommt ein Ordner mit Namen WP_Tabelle

    dort ist die Form1.cs usw. drin das ist auch gleichzeitig der namenspace für das hinzugefügte 2.Projekt



  • Sieht das so aus?

    namespace WP_Tabelle
    {
     public class Form1
     {
     }
    }
    

    Beachte auch das public.
    Beachte die DLL in das andere Hauptprojekt einzubinden.

    Dann ist es einfach:

    WP_Tabelle.Form1 form = new WP_Tabelle.Form1();
    form.Show();
    


  • das 2. Projekt fängt so an :

    namespace WP_Tabelle 
    {
        using Microsoft.SmartDevice.Connectivity;
        using System;
        using System.Collections.Generic;
        using System.ComponentModel;
        using System.Diagnostics;
        using System.Drawing;
        using System.IO;
        using System.Linq;
        using System.Windows.Forms;
        using WP_Tabelle.Properties;
    
        public class Form1 : Form
        {
    
    hier stehen die buttons und Labels
    
     public Form1()
            {
                this.InitializeComponent();
                try
                {
    

    Könntest du mir sagen welche Dll die vom 2. projekt in den verweis vom ersten?

    ich bekomme folgende Fehlermeldungen:

    namespace WP_Tabelle

    ungültiges Token "Namenspace"
    _______

    void Form1(Object sender, EventArgs e)
    {
    Member, wie z.B. Felder oder Methoden, können nicht direkt im Namespace enthalten sein.
    ____________________

    new WP_Tabelle
    Klasse, Delegat, Enumeration, Schnittstelle oder Struktur erwartet.



  • Die Dll vom zweiten Projekt in das Hauptprojekt einbinden. Wir bereits zweimal gesagt.
    Der Aufruf erfolgt dann genau wie vorhin gezeigt.

    Du scheinst jetzt irgendwo eine Methode außerhalb einer Klasse definiert zu haben. Warum auch immer. Oder "Namespace" groß geschrieben. Warum auch immer.

    Ziehe doch einfach mal einen Button auf den Designer (im Hauptprojekt).
    Dann Doppelklich auf den Button damit der leere Eventhandler automatisch erstellt wird. Jetzt fehlt nur noch der Code von vorhin.
    Zusammen so:

    private void button1_Click(object sender, EventArgs e)
    {
    	WP_Tabelle.Form1 form = new WP_Tabelle.Form1(); 
    	form.ShowDialog();
    }
    

    Mehr ist nicht notwendig. Kein "namespace" mehr. Nix.

    Das ist nicht böse gemeint, aber Du bist noch Wochen (oder Monate) von GUI-Programmierung entfernt.



  • Also bei mir sieht es jetzt so aus WP_Tabelle.dll Im Verweis von Tzango
    sowie eine using WP_Tabelle

    namespace WP_Tabelle
    {
    public class Form1
    {
    }
    }

    void buttonform_Click(object sender, RoutedEventArgs e)
    {

    WP_Tabelle.Form1 form = new WP_Tabelle.Form1();
    form.Show();
    }
    }
    }
    }
    }

    bei den Namespace kommt noch eine Fehlermeldung
    ungültiges Token "Namenspace"



  • Sorry es klappt 😉

    Vielen Dank

    wird denn jetzt die dll oder das 2. Projekt aufgerufen ?

    weil das erste Projekt nicht größer geworden ist und nur die dll mit bei liegt.

    Und kann man das eleganter machen das dass 2. projekt nicht als art PopUp Fenster öffnet sondern das sich nur das Fenster vom ersten Projekt entfernt ?



  • ...



  • Jack3345 schrieb:

    wird denn jetzt die dll oder das 2. Projekt aufgerufen ?

    weil das erste Projekt nicht größer geworden ist und nur die dll mit bei liegt.

    😕

    Jack3345 schrieb:

    Und kann man das eleganter machen das dass 2. projekt nicht als art PopUp Fenster öffnet sondern das sich nur das Fenster vom ersten Projekt entfernt ?

    Ja.
    Lies ein Buch.



  • ich Frage doch höflich nach warum kommst du mir so quer

    Ok ich habe mich vor Freude etwas Blöd ausgedrückt

    Wollte eigentlich gern wissen ob es möglich wäre das 2. Projekt in eine Art Liste

    im ersten Projekt einzubinden

    denn das wäre echt toll



  • Dir fehlen einfach so viele Grundlagen, dass ich es nicht für sinnvoll halte, wenn Du Dir jetzt Stück für Stück alles erfragst, was irgendwie toll wäre. Außerdem ist es wahnsinnig schwierig Deine Beiträge zu verstehen. Höflich ja, aber nervenraubend.



  • Dankeschön für deine Hilfe

    aber jeder fängt irgendwann mal an und ich bin seid 3 Tagen dabei C# zu lernen.

    Was an meinen fragen so nerven raubend ist kann ich nicht verstehen
    zumal man im Forum nicht antworten muss.

    Deine Lösung ist schon echt gut aber nicht sehr elegant

    Ich hoffe das sich Jemand finden lässt der mir helfen kann

    Danke im Voraus



  • Jack3345 schrieb:

    Was an meinen fragen so nerven raubend ist kann ich nicht verstehen
    zumal man im Forum nicht antworten muss.

    Weil es schwierig zu verstehen ist, was Du eigentlich willst und man mehrfach nachfragen muss.

    Jack3345 schrieb:

    Deine Lösung ist schon echt gut aber nicht sehr elegant

    Bin sehr gespannt wie man einen Zweizeiler eleganter formuliert 😃



  • Lach 😉

    Ich bin mir sicher das Du das verstanden hast

    Ist es möglich das 2. Projekt Wp_Tabelle in eine Art Liste

    in den ersten Projekt TZango einzubinden.



  • Jack3345 schrieb:

    Ich bin mir sicher das Du das verstanden hast

    Ist es möglich das 2. Projekt Wp_Tabelle in eine Art Liste

    Ne mein Freund. Ich kann nur raten. Und da Dir sonst niemand antwortet ...

    Dich stört das "PopUp Fenster". Sagen wir "Dialog" dazu.
    Willst Du also das Fenster in ein anderes Hauptformular "einbetten"?
    Was hat das dann mit einer Liste zu tun?
    Sprichst Du von List<Form> ?

    Natürlich kann man Forms einbetten. Mache ich täglich, aber in Winforms und nicht in WPF. WPF kann man zwar auch klassisch programmieren aber bevor ich dir alte Vorgehensweisen für neue Technologien empfehle, präzisiere erstmal Deine Frage. Vielleicht findet sich dann ein WPF-Mensch der Dir hilft.



  • das man als Anfänger solche Sachen eher nur versucht zu beschreiben sollte klar sein und ich finde es schade das Du gleich los feuerst nur weil Du C# lange genug gelernt hat.

    Willst Du also das Fenster in ein anderes Hauptformular "einbetten"?

    Genau das habe ich versucht zu sagen

    Danke für deine Gedult



  • Lerne blos nie C++. Der Ton in deren Unterforum ist wirklich rau 😃

    Es hat mich auch gerade mal interessiert wie man das in WPF macht, wovon ich eigentlich keine Ahnung habe. Forms in andere Forms einbetten geht dort wohl nicht mehr. Man verwendet eher UserControls.

    Bestehende Window-Klassen kannst Du abändern und von UserControl statt von Window ableiten. In der XAML-Definition wird das <Window> Tag zu <UserControl>. Sauberer ist natürlich von anfang an ein UserControl statt eine Form zu entwickeln, v.a. weil bei dem Umbau natürlich auch weitere Arbeit notwendig ist ("Title" existiert z.B. nicht in UserControl und wird angemeckert).

    Nun hast Du ein Hauptformular in das alle UserControls eingebettet werden können. Dazu einfach ein Grid als Platzhalter auf das Formular ziehen, zwei Buttons darunter und in den jeweiligen Buttonhandlern lädst Du immer eines von (testweise) zwei UserControls:

    private void button1_Click(object sender, RoutedEventArgs e)
    {
    	grid1.Children.Clear();
    	grid1.Children.Add(new UserControl1());
    }
    
    private void button2_Click(object sender, RoutedEventArgs e)
    {
    	grid1.Children.Clear();
    	grid1.Children.Add(new UserControl2());
    }
    

    Sollen die Controls nicht stets neu angelegt sondern ihren Zustand auch im nicht-angezeigten Zustand behalten, musst Du Referenzen auf sie in der Klasse halten.

    Nachtrag: Im Unloaded-Event kann man darauf reagieren, wenn das Control aus dem grid1 genommen wird. Damit hat man den Lebenszyklus unter Kontrolle. Gefällt mir.



  • Guten Morgen

    Muss ich dazu eine neue Form anlegen ?

    habe eine "grid" angelegt mit 1 Button
    bekomme eine Fehlermeldung der Typ oder Namespace UserControl1 konnte nicht gefunden werden.

    Es schaut so aus :

    private void buttonform_Click(object sender, RoutedEventArgs e)
                {
    
                    WP_Tabelle.Form1 form = new WP_Tabelle.Form1();
                    form.Show();
                }
                private void button2_Click(object sender, RoutedEventArgs e)
                {
                    grid1.Children.Clear();
                    grid1.Children.Add(new UserControl1());
                } 
              }
             }
    

    und

    <Grid Height="79" Name="grid1" Width="497">
    <Button Content="Button" Height="39" HorizontalAlignment="Left" Margin="10,10,0,0" Name="button2_Click" Click="button2_Click" VerticalAlignment="Top" Width="96" />
                             </Grid>
    

Anmelden zum Antworten