Título: Ayuda C#, problema con win forms Publicado por: CrÄsH 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!! Título: Re: Ayuda C#, problema con win forms Publicado por: Mace Windu 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 (http://es.wikipedia.org/wiki/Singleton) Salu2 Título: Re: Ayuda C#, problema con win forms Publicado por: CrÄsH en 11 Enero 2009, 17:06 pm Mace Windu : gracias por tu respuesta pero no llego a tanto y me e kedado igual.
Título: Re: Ayuda C#, problema con win forms Publicado por: Mace Windu 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
Form2 Código
Salu2 Título: Re: Ayuda C#, problema con win forms Publicado por: CrÄsH 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.
Título: Re: Ayuda C#, problema con win forms Publicado por: BETA_V en 12 Enero 2009, 04:26 am Hola ¡¡¡ lo que podes hacer es esto¡¡
en la declaracion del form2 Código
y cuando llamemos al form2 desde el form1 lo hacemos de esta manera Código
espero que te haya sido de ayuda Título: Re: Ayuda C#, problema con win forms Publicado por: CrÄsH 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.
Título: Re: Ayuda C#, problema con win forms Publicado por: BETA_V 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 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
Título: Re: Ayuda C#, problema con win forms Publicado por: CrÄsH 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 Título: Re: Ayuda C#, problema con win forms Publicado por: BETA_V 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
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
y la parte final el codigo del form2 Código espero que te sea de ayuda ,cualquier duda pregunta,para eso esta el foro. Título: Re: Ayuda C#, problema con win forms Publicado por: CrÄsH en 13 Enero 2009, 20:36 pm Gracias!! eso era lo k necitava, ponerlo a publico.
Título: Re: Ayuda C#, problema con win forms Publicado por: CrÄsH en 14 Enero 2009, 00:14 am Mejor abro otro post para preguntar otra cosa enves de hacerlo aki.
Ya k esto ya esta solucionado!! Título: Re: Ayuda C#, problema con win forms Publicado por: Guiegar en 15 Febrero 2009, 07:16 am Hola que tal... no se si ya resolviste tu problema con los win form pero igual te pongo el siguiente ejemplo que creo te puede ayudar en alguna otra ocasion...
FORMULARIO 1 El primer formulario tiene un TextBox llamado "txtDato" y un boton llamado "btnEnviar". La idea es que cuando presiones el boton, el texto que hayas escrito en el "txtDato" pasara al segundo formulario y lo visualizara dentro de otro textbox. Ok, el código de este primer formulario es el siguiente --------------------------------------------------------------------------------------- using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace WindowsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnEnviar_Click(object sender, EventArgs e) { //Creamos un objeto de tipo "Forulario 2" y pasamos un valor al contructor //del formulario 2 Form2 frm = new Form2(txtDato.Text); //Abrimos (Ejecutamos) el formulario en forma "Modal" frm.ShowDialog(); //La siguientes instrucciones no se ejecutaran sino hasta despues de que //se haya cerrado la ventana del forulario 2 //Asignamos a nuestro control el valor de la variable publica de //del formulario 2 "Valor". txtDato.Text = frm.Valor; } } } ------------------------------------------------------------------------------------- FORMULARIO 2 Ahora, en el segundo formulario tambien hay un Textbox llamado "txtValor" y un boton llamado "btnRegresar"... entonces el valor que enviaste desde el formulario 1 sera recibido dentro del contructor del formulario 2 y este será guardado en una variable publica de tipo string para despues ser mostrada. El codigo del forulario 2 es : ------------------------------------------------------------------------------------- using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace WindowsApplication1 { public partial class Form2 : Form { // Variable publica para guardar el valor que se recibimos del formulario 1 // y para guardar el valor que vamos a devolver al formulario 1 public string Valor; //Como puedes ver, aqui estoy sobrecargando el contructor del formulario public Form2(string Dato) { //El valor que recibimos del formulario 1 lo guardamos dentro de nuestra //variable publica this.Valor = Dato; InitializeComponent(); } //Si deseas, este contructor lo puedes quitar o dejarlo public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { //Una vez que nuestro formulario se haya cargado, ahora si, mostramos el // valor que guardamos en nuestra variable publica txtValor.Text = Valor; } private void btnRegresar_Click(object sender, EventArgs e) { //Ahora, antes de cerrar el forulario 2, asignamos a nuestra variable //publica el valor que queremos ver dentro del formulario 1 this.Valor = txtValor.Text; //cerramos el formulario 2 this.Close(); } } } Bueno, espero y aun te sirva este ejemplo y sobre todo que me hayas podido explicar ;D |