Enviar mensaje de una ventana a otra en C# Visual Studio

Iniciado por MTH1695, 30 Agosto 2019, 03:33 AM

0 Miembros y 1 Visitante están viendo este tema.

MTH1695

Buenas noches, quisiera saber cómo puedo enviar un mensaje de un TextBox desde mi ventana 1 a otro TextBox de mi ventana 2 haciendo click en un botón. Estoy programando en Visual Studio. WPF. c#.

Usando la siguiente programación logré enviar el mensaje, pero al hacerlo con "Show" se genera nuevamente la ventana 2 y yo lo que busco es que se imprimar sin necesidad de abrir la ventana nuevamente.

        private void Enviar1_Click(object sender, RoutedEventArgs e)
        {
            Window1 f1 = new Window1();
            f1.Nombre1.Text = Equipo1.Text;
            f1.Show();
        }

Nota: "Nombre1" y "Equipo1" son los nombres de los dos TextBox.

Gracias!

ThunderCls

Estas creando un nuevo objeto de Window1 cada vez que envias el mensaje, lo que hace que se cree una nueva ventana. Para pasar "datos" de un formulario (clase) a otro tienes varios metodos:

1- Simplemente create un property en Window2 (clase 2) y relaciona las clases con una variable en Window1 (clase 1) que contenga la instancia de Window2 (clase 2) para que puedas acceder al objeto y sus metodos.

Código (csharp) [Seleccionar]
class Window1
{
    private Window2 window2;
    // ...
}

class Window2
{
    public string Mensaje { get; set; }
    // ...
}


Cuando vayas a crear una instancia de Window2 desde Window1 recuerda guardar la referencia en tu variable window2. Luego desde Window1 cuando necesites modificar el mensaje solo necesitas usar tu instancia e invocar el atributo de Window2

Código (csharp) [Seleccionar]
window2 .Mensaje = "Nuevo mensaje";

Y luego desde Window2 solo necesitas asignar dicho atributo a tu control cada vez que lo desees

Código (csharp) [Seleccionar]
Textbox1.Text = Mensaje;

2- Una segunda opcion pudiera tambien ser que simplemente te crees una version del constructor de tu Window2 con los parametros adicionales que desees

Código (csharp) [Seleccionar]
class Window2
{
    private string _mensaje;
    public Window2 (string mensaje) : this ()
    {
        // haz lo que quieras con tu mensaje
    }
    // ...
}


3- Create variables publicas/estaticas en tu Window1 y accedelas desde Windows2 cada vez que desees
-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/