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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Ayuda C#, problema con win forms
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda C#, problema con win forms  (Leído 10,096 veces)
CrÄsH


Desconectado Desconectado

Mensajes: 624


========


Ver Perfil
Ayuda C#, problema con win forms
« en: 11 Enero 2009, 01:36 am »

Hola, aver si consigo explicarme bien;

tengo dos formularios en un mismo proyecto, el principal i el secundario, y quiero pasa datos del secundario al principal, para pasar datos del principal al secundario he hecho lo siguiente:

He puesto esto en un boton del form principal:
     Form f = new FormSecundario(datos);
     f.show();
I en el form secundario:
   public FormSecundario(tipo datos);

Hasta aki funciona, pero intento hacer lo mismo intentado pasar datos del secundario al principal:
He puesto esto en un boton del form secundario:
     Form f = new FormPrincipal(datos);

I en el form principal:
   public FormPrincipal(tipo datos);

 y me sale un error:

'Proyecto.FormPrincipal' no contiene un constructor que tome argumentos '0'   

i al pulsarlo me envia al Program.cs(por defecto), es decir, al main(), y conecretamente me marca:

    Application.Run(new FormPrincipal());

Como lo puedo hacer para poderlo hacer igual k del principal al secundario??

Gracias!!






En línea

~~~~~~~~~~~~~~~~
Mace Windu

Desconectado Desconectado

Mensajes: 29


Flaming Our Skills Team


Ver Perfil WWW
Re: Ayuda C#, problema con win forms
« Respuesta #1 en: 11 Enero 2009, 15:16 pm »

¿Has oído hablar del patrón Singleton? Puede qué eso de solución a tu problema ;).

http://es.wikipedia.org/wiki/Singleton

Salu2


En línea

CrÄsH


Desconectado Desconectado

Mensajes: 624


========


Ver Perfil
Re: Ayuda C#, problema con win forms
« Respuesta #2 en: 11 Enero 2009, 17:06 pm »

Mace Windu : gracias por tu respuesta pero no llego a tanto y me e kedado igual.
En línea

~~~~~~~~~~~~~~~~
Mace Windu

Desconectado Desconectado

Mensajes: 29


Flaming Our Skills Team


Ver Perfil WWW
Re: Ayuda C#, problema con win forms
« Respuesta #3 en: 11 Enero 2009, 17:26 pm »

Bien, déjame un rato que cree un pequeño código para que te sirva de ejemplo y lo publico :).

Edit:

Tal cómo te prometí, aquí lo tienes. He simplificado la tarea, mediante la creación de una variable pública. Cada formulario tiene un botón y un cuadro de textol. Espero que era esto lo que intentabas hacer

Form1
Código
  1. using System;
  2. using System.Windows.Forms;
  3.  
  4. namespace WindowsFormsApplication1
  5. {
  6.    public partial class Form1 : Form
  7.    {
  8.        public static string Titulo;
  9.  
  10.        public Form1()
  11.        {
  12.            InitializeComponent();
  13.        }
  14.  
  15.        private void button1_Click(object sender, EventArgs e)
  16.        {
  17.            Titulo = textBox1.Text;
  18.            Form2 frmForm2 = new Form2();
  19.            frmForm2.Show();
  20.        }
  21.  
  22.        private void Form1_DoubleClick(object sender, EventArgs e)
  23.        {
  24.            this.Text = Titulo;
  25.        }
  26.    }
  27. }

Form2
Código
  1. using System;
  2. using System.Windows.Forms;
  3.  
  4. namespace WindowsFormsApplication1
  5. {
  6.    public partial class Form2 : Form
  7.    {
  8.        public Form2()
  9.        {
  10.            InitializeComponent();
  11.        }
  12.  
  13.        private void Form2_Load(object sender, EventArgs e)
  14.        {
  15.            this.Text = WindowsFormsApplication1.Form1.Titulo;
  16.        }
  17.  
  18.        private void button1_Click(object sender, EventArgs e)
  19.        {
  20.            WindowsFormsApplication1.Form1.Titulo = textBox1.Text;
  21.            this.Close();
  22.        }
  23.    }
  24. }

Salu2
« Última modificación: 11 Enero 2009, 18:53 pm por Mace Windu » En línea

CrÄsH


Desconectado Desconectado

Mensajes: 624


========


Ver Perfil
Re: Ayuda C#, problema con win forms
« Respuesta #4 en: 11 Enero 2009, 22:53 pm »

Gracias, una duda, Form1_DoubleClick que es? pq lo k me pasa es k nc donde poner el this.Text = Titulo; (en el caso de este codigo), pq kuando se cierra el Form2 como lo hago para k lea el this.Text = Titulo; en el Form1.

En línea

~~~~~~~~~~~~~~~~
BETA_V

Desconectado Desconectado

Mensajes: 131


HC


Ver Perfil
Re: Ayuda C#, problema con win forms
« Respuesta #5 en: 12 Enero 2009, 04:26 am »

Hola ¡¡¡ lo que podes hacer es esto¡¡

en la declaracion del form2

Código
  1.        Form1 frm;
  2.        public Form2()
  3.        {
  4.            InitializeComponent();
  5.        }
  6.  
  7.  
  8. //Definimos otro constructor
  9.        public Form2(Form1 frm1)
  10.        {
  11.            frm = new Form1();
  12.            frm = frm1;
  13.            InitializeComponent();          
  14.        }
  15.  
  16. //ahora que tenemos instanciado el form1,podemos acceder a sus propiedades y //metodos
  17.  

y cuando llamemos al form2 desde el form1 lo hacemos de esta manera

Código
  1.           //el this seria el form1
  2.            Form2 f = new Form2(this);
  3.            f.Show();
  4.  

espero que te haya sido de ayuda
« Última modificación: 12 Enero 2009, 04:29 am por BETA_V » En línea

CrÄsH


Desconectado Desconectado

Mensajes: 624


========


Ver Perfil
Re: Ayuda C#, problema con win forms
« Respuesta #6 en: 12 Enero 2009, 22:52 pm »

Lo k necesito es k al pulsar un boton del Form2  me cree un ListBox en el Form1, con valores del Form2.
En línea

~~~~~~~~~~~~~~~~
BETA_V

Desconectado Desconectado

Mensajes: 131


HC


Ver Perfil
Re: Ayuda C#, problema con win forms
« Respuesta #7 en: 12 Enero 2009, 23:34 pm »

de la manera que te indique yo lo podes hacer ;D¡¡¡ podes acceder a los controles ,metodos .... del form1

lo unico que me olvide.es que tener que cambiar el modificador de acceso, del control en cuestion,en el form 1,precisamente en  Nombre_de_archivo_donde_tenes_el_control.Designer.cs

por ej:

Código
  1.  private System.Windows.Forms.Label label1;
  2.  //lo hacemos publico
  3.  public System.Windows.Forms.Label label1;
  4.  
y ahi podemos acceder al control del form1 desde el form2.

un ejemplo sencillo, cambiamos el contenido del label del form1, desde el form2

Código
  1. private void button1_Click(object sender, EventArgs e)
  2.        {
  3.            frm.label1.Text="hola";
  4.        }
  5.  
En línea

CrÄsH


Desconectado Desconectado

Mensajes: 624


========


Ver Perfil
Re: Ayuda C#, problema con win forms
« Respuesta #8 en: 13 Enero 2009, 01:52 am »

Gracias BETA_V , pero no lo acabo de entender tu ejemplo, o mejor dicho, no se como aplicarlo al problema k tengo, con el ejemplo k me muestras.

El ejemplo de Mace Windu lo entenia mejor, lo unico k me faltaba era saber como hacerlo para k al cerrar el Form2, pues en el Form1 me leiera esto this.Text = Titulo;(en el caso de su codigo), sin tener k pulsar nada. ya k tengo k conseguir k despues de cerrar el Form2 mediante un boton, pues en el Form1 se me cree un listbox, lleno de los datos(tabla de strings) del Form2;

Gracias

« Última modificación: 13 Enero 2009, 01:58 am por CrÄsH » En línea

~~~~~~~~~~~~~~~~
BETA_V

Desconectado Desconectado

Mensajes: 131


HC


Ver Perfil
Re: Ayuda C#, problema con win forms
« Respuesta #9 en: 13 Enero 2009, 04:20 am »

hola que tal¡¡¡¡
te paso el codigo,entero para que veas como queda¡¡¡

este seria el codigo del form1 en donde esta el listbox
Código
  1. public partial class Form1 : Form
  2.    {
  3.        public Form1()
  4.        {
  5.            InitializeComponent();
  6.        }
  7.  
  8.        private void button1_Click(object sender, EventArgs e)
  9.        {
  10.            Form2 f = new Form2(this);
  11.            f.Show();
  12.        }
  13.    }
  14.  

ahora cambiamos la visibilidad del list box y lo ponemos como publico,ya que al ser privado no podremos acceder a el desde el form2,esta modificacion seria en el archivo Form1.Designer.cs

Código
  1.  
  2.        #region Windows Form Designer generated code
  3.  
  4.        ///
  5.        #endregion
  6.        //al list box lo ponemos como publico
  7.        public System.Windows.Forms.ListBox listBox1;
  8.        private System.Windows.Forms.Button button1;
  9.  

y la parte final el codigo del form2

Código
  1.    public partial class Form2 : Form
  2.    {
  3.        Form1 frm;
  4.        public Form2()
  5.        {
  6.            InitializeComponent();
  7.        }
  8.  
  9.        public Form2(Form1 frm1)
  10.        {
  11.            frm = new Form1();
  12.            frm = frm1;
  13.            InitializeComponent();
  14.        }
  15.  
  16.        private void button1_Click(object sender, EventArgs e)
  17.        {
  18. //agregamos datos en el listbox del form1
  19.            frm.listBox1.Items.Add("hola");
  20.            frm.listBox1.Items.Add("que");
  21.            frm.listBox1.Items.Add("tal");
  22.            Close();
  23.  
  24.        }
  25.    }
  26.  
  27.  
espero que te sea de ayuda ,cualquier duda pregunta,para eso esta el foro.
« Última modificación: 13 Enero 2009, 04:23 am por BETA_V » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema al cargar icono a todos los forms
.NET (C#, VB.NET, ASP)
luison 1 2,046 Último mensaje 29 Abril 2011, 01:44 am
por neoncyber
Lenguaje C# VS 19 problema con Win Forms
.NET (C#, VB.NET, ASP)
SonnyCrockett 9 4,781 Último mensaje 5 Abril 2021, 13:45 pm
por SonnyCrockett
problema de impresion printdocument y hasmorepages= windows forms c#
Programación General
rulovive 1 3,078 Último mensaje 21 Julio 2021, 21:36 pm
por rulovive
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines