Autor
|
Tema: Ayuda C#, problema con win forms (Leído 10,096 veces)
|
CrÄsH
Desconectado
Mensajes: 624
========
|
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
|
~~~~~~~~~~~~~~~~
|
|
|
|
CrÄsH
Desconectado
Mensajes: 624
========
|
Mace Windu : gracias por tu respuesta pero no llego a tanto y me e kedado igual.
|
|
|
En línea
|
~~~~~~~~~~~~~~~~
|
|
|
Mace Windu
Desconectado
Mensajes: 29
Flaming Our Skills Team
|
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 Form1using System; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public static string Titulo; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Titulo = textBox1.Text; Form2 frmForm2 = new Form2 (); frmForm2.Show(); } private void Form1_DoubleClick(object sender, EventArgs e) { this.Text = Titulo; } } }
Form2using System; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { this.Text = WindowsFormsApplication1.Form1.Titulo; } private void button1_Click(object sender, EventArgs e) { WindowsFormsApplication1.Form1.Titulo = textBox1.Text; this.Close(); } } }
Salu2
|
|
« Última modificación: 11 Enero 2009, 18:53 pm por Mace Windu »
|
En línea
|
|
|
|
CrÄsH
Desconectado
Mensajes: 624
========
|
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
Mensajes: 131
HC
|
Hola ¡¡¡ lo que podes hacer es esto¡¡ en la declaracion del form2 Form1 frm; public Form2() { InitializeComponent(); } //Definimos otro constructor public Form2(Form1 frm1) { frm = frm1; InitializeComponent(); } //ahora que tenemos instanciado el form1,podemos acceder a sus propiedades y //metodos
y cuando llamemos al form2 desde el form1 lo hacemos de esta manera //el this seria el form1 Form2 f = new Form2 (this); f.Show();
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
Mensajes: 624
========
|
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
Mensajes: 131
HC
|
de la manera que te indique yo lo podes hacer ¡¡¡ 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: private System.Windows.Forms.Label label1; //lo hacemos publico public System.Windows.Forms.Label label1;
y ahi podemos acceder al control del form1 desde el form2. un ejemplo sencillo, cambiamos el contenido del label del form1, desde el form2 private void button1_Click(object sender, EventArgs e) { frm.label1.Text="hola"; }
|
|
|
En línea
|
|
|
|
CrÄsH
Desconectado
Mensajes: 624
========
|
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
Mensajes: 131
HC
|
hola que tal¡¡¡¡ te paso el codigo,entero para que veas como queda¡¡¡ este seria el codigo del form1 en donde esta el listbox public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form2 f = new Form2 (this); f.Show(); } }
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 #region Windows Form Designer generated code /// #endregion //al list box lo ponemos como publico public System.Windows.Forms.ListBox listBox1; private System.Windows.Forms.Button button1;
y la parte final el codigo del form2 public partial class Form2 : Form { Form1 frm; public Form2() { InitializeComponent(); } public Form2(Form1 frm1) { frm = frm1; InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //agregamos datos en el listbox del form1 frm.listBox1.Items.Add("hola"); frm.listBox1.Items.Add("que"); frm.listBox1.Items.Add("tal"); Close(); } }
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
|
|
|
|
|
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
|
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
|
5 Abril 2021, 13:45 pm
por SonnyCrockett
|
|
|
problema de impresion printdocument y hasmorepages= windows forms c#
Programación General
|
rulovive
|
1
|
3,078
|
21 Julio 2021, 21:36 pm
por rulovive
|
|