elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Enviar mensaje de una ventana a otra en C# Visual Studio
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Enviar mensaje de una ventana a otra en C# Visual Studio  (Leído 3,536 veces)
MTH1695

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Enviar mensaje de una ventana a otra en C# Visual Studio
« en: 30 Agosto 2019, 03:33 am »

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!


En línea

ThunderCls


Desconectado Desconectado

Mensajes: 455


Coder | Reverser | Gamer


Ver Perfil WWW
Re: Enviar mensaje de una ventana a otra en C# Visual Studio
« Respuesta #1 en: 16 Octubre 2019, 20:17 pm »

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
  1. class Window1
  2. {
  3.    private Window2 window2;
  4.    // ...
  5. }
  6.  
  7. class Window2
  8. {
  9.    public string Mensaje { get; set; }
  10.    // ...
  11. }

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
  1. window2 .Mensaje = "Nuevo mensaje";

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

Código
  1. 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
  1. class Window2
  2. {
  3.    private string _mensaje;
  4.    public Window2 (string mensaje) : this ()
  5.    {
  6.        // haz lo que quieras con tu mensaje
  7.    }
  8.    // ...
  9. }

3- Create variables publicas/estaticas en tu Window1 y accedelas desde Windows2 cada vez que desees


En línea

-[ "…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/
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines