none
Prozedur von einem aufgerufenen Fenster im aufrufenden Fenster aufrufen ;-) RRS feed

  • Frage

  • Hallo!

    Ich möchte vom Hauptfenster (MainWindow) ein weiteres Fenster (Window1) aufrufen, von dem aus etwas in eine Textbox in MainWindow geschrieben werden soll, ohne dass Window1 geschlossen wird.

    Über welchen möglichst einfachen Weg kann ich das bewerkstelligen (in Wpf, weiß nicht, ob das entscheidend ist).

    Wenn ich von Window1 aus eine entsprechende MainWindow-Prozedur aufrufe (in der ein übergebender String in die Textbox eingefügt werden soll) wird in die Textbox nichts eingefügt, obwohl die Prozedur durchlaufen wird.

    Wahrscheinlich der falsche Ansatz?

    Gruß Kai

    Freitag, 18. Februar 2011 12:01

Antworten

  • Am 18.02.2011 13:01, schrieb kai-carsten:
    > Hallo!
    >
    > Ich möchte vom Hauptfenster (MainWindow) ein weiteres Fenster (Window1)
    > aufrufen, von dem aus etwas in eine Textbox in MainWindow geschrieben
    > werden soll, ohne dass Window1 geschlossen wird.
    ....
    > Gruß Kai
    >
    Hallo Kai,
     
    anbei ein wenig C# Quellcode zur Verdeutlichung.
     
    Code im MainWindow
     
    public partial class MainWindow : Window
    {
    public MainWindow()
    {
    InitializeComponent();
    }
     
    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
    Window1 F2 = new Window1(this);
    F2.Show();
    }
     
    public void AbIndieTextBox(String Text)
    {
    textBox1.Text = Text;
     
    }
    }
     
    Code des Windows1
     
    public partial class Window1 : Window
    {
    MainWindow Hauptfenster;
     
    public Window1()
    {
    InitializeComponent();
    }
     
    public Window1(MainWindow HF)
    {
    InitializeComponent();
    Hauptfenster = HF;
    }
     
    private void button1_Click(object sender, RoutedEventArgs e)
    {
    Hauptfenster.AbIndieTextBox("Huhu");
    }
    }
     
    Zugriff vom Window1 auf das MainWindow erhältst du über einen
    Konstruktor im Window1, der eine Refernz auf MainWindow als Parameter
    enthält.
     
    Schönes Wochenende
    Herbert
     
    • Als Antwort markiert kai-carsten Freitag, 18. Februar 2011 14:48
    Freitag, 18. Februar 2011 13:54
  • Public Sub New(HF As MainWindow)
     InitializeComponent()
     Hauptfenster = HF
    End Sub
    • Als Antwort markiert kai-carsten Freitag, 18. Februar 2011 14:48
    Freitag, 18. Februar 2011 14:07
    Beantworter

Alle Antworten

  • Poste mal den Code dafür...
    Freitag, 18. Februar 2011 12:11
    Beantworter
  • Aufrufen des Fensters Window1 von MainWindow aus:

     

            Dim Window1 As New Window1

            Window1 .Show()

     

    Die Prozedur in MainWindow:

     

        Sub test(ByVal strTest As String)

            txbTest.Text = strTest

        End Sub

     

    Der Code in Window1:


        Private Sub btnUebernehmen_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles btnUebernehmen.Click

            Dim Mainwindow1 As New MainWindow

            Mainwindow1.test("test1")       

        End Sub

     

    Gruß

    Kai

     

    Freitag, 18. Februar 2011 13:00
  • Am 18.02.2011 13:01, schrieb kai-carsten:
    > Hallo!
    >
    > Ich möchte vom Hauptfenster (MainWindow) ein weiteres Fenster (Window1)
    > aufrufen, von dem aus etwas in eine Textbox in MainWindow geschrieben
    > werden soll, ohne dass Window1 geschlossen wird.
    ....
    > Gruß Kai
    >
    Hallo Kai,
     
    anbei ein wenig C# Quellcode zur Verdeutlichung.
     
    Code im MainWindow
     
    public partial class MainWindow : Window
    {
    public MainWindow()
    {
    InitializeComponent();
    }
     
    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
    Window1 F2 = new Window1(this);
    F2.Show();
    }
     
    public void AbIndieTextBox(String Text)
    {
    textBox1.Text = Text;
     
    }
    }
     
    Code des Windows1
     
    public partial class Window1 : Window
    {
    MainWindow Hauptfenster;
     
    public Window1()
    {
    InitializeComponent();
    }
     
    public Window1(MainWindow HF)
    {
    InitializeComponent();
    Hauptfenster = HF;
    }
     
    private void button1_Click(object sender, RoutedEventArgs e)
    {
    Hauptfenster.AbIndieTextBox("Huhu");
    }
    }
     
    Zugriff vom Window1 auf das MainWindow erhältst du über einen
    Konstruktor im Window1, der eine Refernz auf MainWindow als Parameter
    enthält.
     
    Schönes Wochenende
    Herbert
     
    • Als Antwort markiert kai-carsten Freitag, 18. Februar 2011 14:48
    Freitag, 18. Februar 2011 13:54
  • Danke, herbert.

    Leider komme ich mit C# überhaupt nicht klar.

    Weiß jemand wie der Konstruktor in VB-Code aussehen müsste?

    Gruß

    Kai

    Freitag, 18. Februar 2011 14:04
  • Public Sub New(HF As MainWindow)
     InitializeComponent()
     Hauptfenster = HF
    End Sub
    • Als Antwort markiert kai-carsten Freitag, 18. Februar 2011 14:48
    Freitag, 18. Februar 2011 14:07
    Beantworter
  • Was soll ich sagen?

    Ich bin glücklich :-)

    Vielen Dank Euch beiden!!

    Gruß

    Kai

    Freitag, 18. Februar 2011 14:49