Вы находитесь на странице: 1из 57

hola lo que no se es como ir a otro formulario atraves de un buton y regresarme sin salir tengo ya los dos formularios y los

butones junto con unos cajas de texto pero lo que no se es como ir a mi segundo formulario atraves de mi buton de mi primer formulario y regresarme al formulario uno, atraves de mi buton del segundo furmulario
o o

Responder Citar

Todas las respuestas

lunes, 07 de marzo de 2011 5:59

lo que puedes hacer es llamar al segundo formulario con el metodo showdialog, asi tendras cerrar primero este (el segundo formulario) para retornar al primer formulario.

saludos

Liebling Schacmann
o o

Responder Citar

lunes, 07 de marzo de 2011 12:29 Moderador

hola en el primer form podrias poner private void btnOpenForm_Click(...){ Form2 frm2 = new Form2(); frm2.Show(); } con eso abres el form

luego en el Form que se abre para regresar solo lo cierras o en un boton del mismo pones private void btnClose_Click(...){ this.Close(); } con eso cierras el form y como ya tenias el anterior abierto eso es todo

saludos

Leandro Tuttini Blog Buenos Aires Argentina


o o

Propuesto como respuesta Efrain Mejias C lunes, 07 de marzo de 2011 12:53 Marcado como respuesta Eduardo PorteschellerModerator mircoles, 09 de marzo de 2011 18:18

o o o

Responder Citar

lunes, 07 de marzo de 2011 13:18

Hola... Tambien podrias abrirlo en modo dialogo y te serviria para hacer tus propias ventanas o menssages de advertencia....te sugiero q lo pruebes y notes por ti mismo las diferencia de la forma q te sugiere Leandro private void btnOpenForm_Click(...){ Form2 frm2 = new Form2(); frm2.ShowDialog(); }

EFRAIN MEJIAS C VALENCIA - VENEZUELA


o o o o

Marcado como respuesta Eduardo PorteschellerModerator mircoles, 09 de marzo de 2011 18:18 Responder Citar

martes, 25 de septiembre de 2012 15:08

Hola Me podra ayudar por favor.

Lo que propusieron esta muy bien y me ayudo pero necesito algo mas el form1 es un formulario normal pero el forme 2 es un buscador. Como hago para que el resultado del buscador se lo lleve al textbox de form1. Gracias por su ayuda............ Podra mandarme un ejemplo...........es que soy muy nueva en lenguaje c#.

Buenas que tal ? Tengo una duda acerca de como pasar de un form a otro cuando estoy haciendo una aplicacion de escritorio ya que solo se trabajar con web foms y estoy empezando a hacer aplicaciones e escritorio. En los webs es " Response.Rdiect ( "Pagnina.aspx") pero en los win forms eso no funciona Agradesco alguna respuestita ! Gracias ! Raul.. P.D : en C# Avisos Google

Traductor Gratuito
Descarga El Traductor Online Gratis Aplicacin Gratis Hecha Para Tu PC traductor.miinternetinteligente.com
#2 (permalink) 14/09/2008, 20:26 Peterpay Colaborador Fecha de Ingreso: septiembre-2007 Ubicacin: San Francisco, United States Mensajes: 3.857 Antigedad: 5 aos, 4 meses Puntos: 87

Respuesta: Como paso de un form a otro? c# en el evento que invoque a la 2da forma necesitas hacer algo como Form2 formaSiguiente=new Form2(); this.Hide(); //oculta la forma actual formaSiguient.Show(); // muestra la forma2 __________________ Curso WF4 http://cursos.gurudotnet.com/ DF Aprende HTML5 #3 (permalink) 14/09/2008, 21:53 Raul_F Respuesta: Como paso de un form a otro? c# Muchas gRacias !! Aguante !! Fecha de Ingreso: septiembre-2008 Mensajes: 54 Antigedad: 4 aos, 4 meses Puntos: 0

como pasar variables de un formulario a otro?


Formular una pregunta

viernes, 30 de diciembre de 2011 21:52

SasuOne 0 Points

hola kisiera com pasar algunas variables en c# windows from kiero pasar algunas variables capturadas de textbox y label de mi Form1 a mi Form2 como lo hago ?
o o

Responder Citar

Todas las respuestas

viernes, 30 de diciembre de 2011 22:02

darkneodev 560 Points

Puedes pasar los valores a traves del constructor de tu formulario, digamos que tienes un formulario con un textbox y un boton, en cuyo evento abrira un form2 pasandole el valor capturado en el textbox:

public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnAbrirForm2_Click(object sender, EventArgs e) { //instancia de form2 pasandole el valor del textbox using (Form2 frm1 = new Form2(textBox1.Text)) { frm1.ShowDialog(); } } } public partial class Form2 : Form { private string valorEnForm2; //recibe el valor ... public Form2(string valor) { InitializeComponent(); //...y lo seteas en una variable de clase this.valorEnForm2 = valor; } private void Form2_Load(object sender, EventArgs e) { MessageBox.Show(this.valorEnForm2); }

Otra opcin es que utilices los modificadores de acceso en tus variables, esto te puede funcionar por ejemplo cuando estaras trabajando con 2 formularios simultaneamente y modificaras valores en uno y otro.

public partial class Form1 : Form { Form2 instanciaForm1 = null; public Form1()

{ InitializeComponent(); this.instanciaForm1 = new Form2(); } private void btnAbrirForm2_Click(object sender, EventArgs e) { //modificas el valor de la variable valorEnForm2 desde el formulario1 this.instanciaForm1.valorEnForm2 = textBox1.Text; } private void btnHaceAlgoMas_Click(object sender, EventArgs e) { //abres el formulario2 que ya tendra modificado el valor de la variable en una accin anterior //en este formulario this.instanciaForm1.ShowDialog(); } } public partial class Form2 : Form { //tu variable la haces publica public string valorEnForm2; public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { if (this.valorEnForm2 != null && this.valorEnForm2! =string.Empty) MessageBox.Show(this.valorEnForm2); else MessageBox.Show("La variable 'valorEnForm2' aun no tiene valor"); } }

----------------------------------------------------------- Si te sirve alguna respuesta no olvides marcarla como tal o votarla.


o o o o

Editado darkneodev viernes, 30 de diciembre de 2011 22:09 Propuesto como respuesta Santiago Ezequiel Rueda viernes, 30 de diciembre de 2011 22:10 Marcado como respuesta Eduardo PorteschellerModerator martes, 03 de enero de 2012 12:11

PASAR UN VALOR DE UN FORM A OTRO FORM


Formular una pregunta

martes, 01 de septiembre de 2009 15:20

ANDRE HARO 5 Points

Hola a Todos , estoy en windows form y tengo esto Public Class FrmParking Public NombreOp As String ( entonces el valor que rescato de ese combo box, kiero pasarselo al este Frm... alguien me puede decir compo? lo rescato del form Principal please!!! Public Class FrmPrincipal Private Sub ComboO_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboO.SelectedIndexChanged

operador = Me.ComboO.Text End Sub Private Sub BtnValida_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnValida.Click If Me.TxtClave.Text <> "" Then Dim a = 1 Dim SQL = ("SELECT * FROM operadores WHERE Clave = '" & Me.TxtClave.Text & "'") Dim Cnn As New MySqlConnection(cn) Cnn.Open() If Cnn.State = ConnectionState.Open Then Dim cmd As New MySqlCommand(SQL, Cnn) Dim da As New MySqlDataAdapter(cmd) cmd.ExecuteNonQuery() Dim ds As New DataSet("operadores") da.Fill(ds) Dim dt As DataTable dt = ds.Tables(0) If dt.Rows.Count > 0 Then 'Me.Panel1.Visible = True FrmParking.Show() Cnn.Close() Else MsgBox("CLAVE INCORRECTA", MsgBoxStyle.Exclamation, "ERROR") End If End If End If End Sub Private Sub BtnEntrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEntrar.Click If Me.ComboO.Text <> "" Then Dim Cnn As New MySqlConnection(cn) Dim SQL As String = ("SELECT Cargo FROM operadores WHERE Nombre=" & operador) Try Cnn.Open() Dim cmd As New MySqlCommand(SQL, Cnn) Dim Dr As MySqlDataReader Dr = cmd.ExecuteReader If Dr.Read Then cargo = Dr.GetString(0) Select Case cargo Case "Entrada" FrmParking.Show()

Case "Salida" FrmParking.Show() Case Else MsgBox("Error", MsgBoxStyle.Information) End Select End If Catch ex As Exception End Try End If End Sub End Class
o o

Responder Citar

Todas las respuestas

martes, 01 de septiembre de 2009 15:24

Leandro Tuttini Baufest (MCC, Partner, MVP) 480,320 Points Moderador

hola link link link

en los link encontraras ejemplos de como comunicar formaulario de form desacoplada, por medio de interfaces cualquier duda solo consulta, y vemos de ampliar Nota: se que alguno esta en c#, pero si queires praducirlo usa Code Converter

saludos

Leandro Tuttini Blog Buenos Aires Argentina


o o

Responder Citar

martes, 01 de septiembre de 2009 15:30

Enrique M. Montejo (MCC, MVP) 52,540 Points Moderador

En lugar de utilizar campos pblicos, utiliza propiedades pblicas, o si nicamente llamas al formulario FrmParking desde el formulario

FrmPrincipal, adele un parmetro al constructor de la clase FrmParking:


Public Class FrmParking Private _NombreOp As String Public Sub New(ByVal nombreOp As String) _NombreOp = nombreOp End Sub End Class

Ahora, llamaras al formulario FrmParking de la siguiente manera: Dim frm As New FrmParking(valor_ComboBox) frm.Show() Que deseas utilizar un procedimiento de propiedad? En la clase FrmParking declaras la siguiente propiedad pblica:
Public Class FrmParking Private _NombreOp As String Public Property NombreOp() As String Get Return _NombreOp End Get Set(ByVal value As String) _NombreOp = value End Set End Property End Class

Ahora, antes de llamar al mtodo Show() del formulario, le indicaras el valor del control ComboBox a la propiedad NombreOp: Dim frm As New FrmParking frm.NombreOp = valor_ComboBox frm.Show()

Recuerda marca sta respuesta como satisfactoria si te ha resultado til. Un saludo

Enrique Martnez [MS MVP - VB]


o o o o o

Propuesto como respuesta Enrique M. MontejoMVP, Moderator martes, 01 de septiembre de 2009 16:03 Marcado como respuesta jtorrecillaMVP, Moderator martes, 23 de noviembre de 2010 11:37

Responder Citar

martes, 01 de septiembre de 2009 15:53

ANDRE HARO 5 Points

Ya esque el primer form que se abre el es el Principal, y ahi mne tiene que ingresar una clave, y si la clave coincide entonces me muestra el form FrmParking, entonces necesito que la clave que me inngresan en el Frm Principal, lo pueda usar en el FrmParking para poder sastifacer mi flujo... -.Gracias!
o o

Responder Citar

martes, 01 de septiembre de 2009 16:02

Enrique M. Montejo (MCC, MVP)

52,540 Points Moderador

Y donde est el problema? > ... necesito que la clave que me inngresan en el Frm Principal, > lo pueda usar en el FrmParking ... Una vez que tengas la clave y la hayas validado, simplemente tienes que pasrsela al formulario FrmParking, bien a su constructor New, o a su propiedad NombreOp, tal y como as te lo he comentado anteriormente.

Enrique Martnez [MS MVP - VB]


o o

Responder Citar

martes, 01 de septiembre de 2009 16:57

ANDRE HARO 5 Points

mmm no te entendi cmuhoo , sorry ... salgo asi mira..

Tengo esto : ( resumido ) Public Class FrmPrincipal Dim operador, cargo As String ( Aqui almaceno lo que me eligen de un combo Box, sabiendo el operador, puedo saber el cargo) ya entonces , cuando rescato el valor del combo box Voy ami Validacion de Cargo, pero ahi me podrias detallar un pokito mas Porfa!!! Creo algo asi ? Dim frm As New FrmParking(valor_ComboBox) frm.show,( esto iria cuando ya paso la validacion y necesito que me muestre el otro From no ? ) y en Frmparkin que le declaro ? para obtener ??

Sorry por lentitud :(


o o

Responder Citar

martes, 01 de septiembre de 2009 17:05

Enrique M. Montejo (MCC, MVP) 52,540 Points Moderador

Vamos a ver si nos enteramos! Dices que en el formulario FrmPrincipal obtienes el valor del control ComboBox, y ese valor, se lo tienes que pasar al formulario FrmParking. OK?

En el formulario FrmParking tienes que insertar el siguiente constructor:


Public Class FrmParking Private _NombreOp As String Public Sub New(ByVal nombreOp As String) _NombreOp = nombreOp End Sub End Class

Ahora, cuando ya sepas el valor del control ComboBox y desees mostrar el formulario FrmParking, simplemente ejecutaras lo siguiente:
Private Sub BtnEntrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEntrar.Click If Me.ComboO.Text <> "" Then Dim Cnn As New MySqlConnection(cn) Dim SQL As String = ("SELECT Cargo FROM operadores WHERE Nombre=" & operador) Try Cnn.Open() Dim cmd As New MySqlCommand(SQL, Cnn) Dim Dr As MySqlDataReader Dr = cmd.ExecuteReader If Dr.Read Then cargo = Dr.GetString(0) Select Case cargo Case "Entrada" Dim frm As New FrmParking(ComboO.Text) frm.Show() Case "Salida" Dim frm As New frm.Show() Case Else MsgBox("Error", MsgBoxStyle.Information) End Select End If Catch ex As Exception End Try End If End Sub

FrmParking(ComboO.Text)

Ahora, en el campo _NombreOp del formulario FrmParking, tendrs el valor de la propiedad Text del control ComboBox llamado ComboO.

Por supuesto, a lo mejor tendrs que adaptar tu cdigo a lo que yo te estoy explicando, pero vamos! No creo que sea tan complicado de hacerlo. :-)

Enrique Martnez [MS MVP - VB]


o o

Responder Citar

martes, 01 de septiembre de 2009 17:05

Leandro Tuttini Baufest (MCC, Partner, MVP) 480,320 Points Moderador

hola en los ejemplos que pase estan estas implementaciones que necesitas, pero basicamente lo que comenta Enrique es que debes - primero crear una propiedad en tu form destino "FrmParking" Private _valorCombo As String Public Property ValorCombo() As String Get Return _valorCombo End Get

Set(ByVal value As String) _valorCombo = value End Set End Property - segundo desde tu form "FrmPrincipal" cuando realzias la aprtura del formulario debes hacerlo de esta forma Dim frm As New FrmParking frm.ValorCombo = cmbComboBox.SelectedValue frm.Show() en el negrita se especifica el valor en el form al que llamas bueno espero se entieneda saludos

Leandro Tuttini Blog Buenos Aires Argentina


o o

Responder Citar

martes, 01 de septiembre de 2009 19:47

programin Alco S.A 105 Points

y porque no solo en la clase secundaria pones una variable publica compartida para que la puedas accesar desde cualquier otro

formualrio algo como esto

clase primaria Public Class FRM_principal esto se debe hacer en el evento cuando el valor del index del combo cambia Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged FRM_secundario.Txt_transferencias=ComboBox1.text End sub End class clase secundaria Public Class FRM_secundario Public shared Txt_transferencia as string aqu validas lo que tengas que validar y devuelves el valor en otra s necesitas ternarlo End class

espero haberte entendido y coloborado si alguna cosa me dices que con gusto tratare de ayudarte.

o o

Responder Citar

mircoles, 02 de septiembre de 2009 0:35

Leandro Tuttini Baufest (MCC, Partner, MVP) 480,320 Points

Moderador

hola Programin se que esa es la solucion mas simple de implemetar pero debo remarcar que es la menos aconsejada, es eficaz, si debo decir que si cumple el obtetivo, pero para nada eficiente. En realidad el tema de usar variables publicas rompen un poco con el encapsulamiento y el aistalmiento de las partes de tu codigo, es por eso que las buenas practicas aconsejan utilizar propiedades e interfaces, para lograr el desacoplamieno de los componentes. Ademas un punto mas, estas declarando la propiedad del form no solo como publico sino ademas como shared, esto quiere decir que sera global para cada instancia del formulario que crees, lo cual no es bueno ya que un formulario es visto como un clase, del cual puedes crear instancias, si usas una variable sahred esta sera compartida por lo cual algo estas perdiendo en el camino bueno espero haberme explicado bien saludos

Leandro Tuttini Blog Buenos Aires Argentina


o o

Responder Citar

mircoles, 02 de septiembre de 2009 14:08

programin

Alco S.A 105 Points

gracias por tu aclaracion, todo lo que me explicas lo entiendo perfectamente y lo s gracias de todas maneras solo estaba poniendo otra forma mas simple de hacerlo.
o o

Responder Citar

mircoles, 02 de septiembre de 2009 15:39

Enrique M. Montejo (MCC, MVP) 52,540 Points Moderador

"programin" escribi: > solo estaba poniendo otra forma mas simple de hacerlo. Quieres un consejo gratuito? En lugar de utilizar CAMPOS PBLICOS (que es a lo que tu llamas variables pblicas), acostmbrate a utilizar

PROPIEDADES PBLICAS. Parece lo mismo, pero no es lo mismo un Campo y una Propiedad. :-)

Enrique Martnez [MS MVP - VB]


o o

Responder Citar

mircoles, 02 de septiembre de 2009 17:25

ANDRE HARO 5 Points

Sabes Gracias por sus concejos!!..SoftJan gracias por tu Paciencia....!!!! y si no me daba cuenta, lo intente y me saliooo Leandro Gracias hermano, ya van dos veces que acudes amis urgencias.. pyues gracias.. un abrazo de aqui, si estuvieras aqui te invitaria un almuerzo lo minimo!!!...Esqu quizas lo tomen para ustedes re sencillo pero, Estoy emepzando en esto, tengo 20 pero muchas ganas de seguir aprendiendoo!!!

GRacias a Todos Ustedes!!

o o

Responder Citar

mircoles, 02 de septiembre de 2009 17:26

ANDRE HARO 5 Points

Gracias SoftJan , aunqeu seguire averiguando eso de las propiedades, gracias por ayudarme!!! ME Resulto bien bonito!

o o

Responder Citar

mircoles, 02 de septiembre de 2009 17:27

Enrique M. Montejo (MCC, MVP) 52,540 Points Moderador

Ya que no nos puedes invitar a un almuerzo, al menos marca como satisfactorias aquellas respuestas que te hayan sido tiles. :-)

Pasar datos de un Form a otro en C# HOla un saludo a todos. tengo un problema, como puedo hacer para poder pasar datos de un Form a otro, les cuento: Tengo un Form1 que representa a un login, el cual si son validos los datos paso al siguiente Form2, pero aparte de consultar el usuario y password quiero pasarle sus datos principales del Form1 al Form2, como su nombre y apellidos para poder visualizarlo en el Form 2 y darle una bienvenida Les agradezco por su ayuda. Avisos Google .

Cree Su Pgina Web Gratis


Construye Pginas Web En 3 Minutos Con Dominio Propio Y Sin Publicidad www.simplesite.com/EnEspanol
#2 (permalink) 23/07/2009, 01:25 Fecha de Ingreso: agosto-2008 Ubicacin: En internet Mensajes: 1.787 Antigedad: 4 aos, 4 meses Puntos: 113

Fuzzylog

Respuesta: Pasar datos de un Form a otro en C# Bueno, si los formularios estn en pginas distintas, podras recoger el contenido introducido en el primer formulario en el onSubmit() de la primera pgina, pasarlos a variables y luego ese contenido ponerlo en labels en el onLoad() del segundo formulario. #3 (permalink) 23/07/2009, 09:07 Fecha de Ingreso: febrero-2009 Ubicacin: Huancan,Puno,Per Mensajes: 114 Antigedad: 3 aos, 11 meses Puntos: 3

hnesys

Respuesta: Pasar datos de un Form a otro en C# Cita: Iniciado por Fuzzylog si los formularios estn en pginas distintas, podras recoger el contenido introducido en el primer formulario en el onSubmit() de la primera pgina, pasarlos a variables y luego

ese contenido ponerlo en labels en el onLoad() del segundo formulario. Gracias por tu respuesta, bueno si no fuece mucha inquietud esos comandos no son de JAVASCRIPT ?, yo estoy haciendo una aplicacion de escritorio(.NET) con C#, y estoy trabajando con Form(Frame) y necesito pasar esos datos. Gracias #4 (permalink) 23/07/2009, 09:12 Fecha de Ingreso: junio-2008 Ubicacin: Peru - Lima Mensajes: 1.518 Antigedad: 4 aos, 7 meses Puntos: 219

Dradi7

Respuesta: Pasar datos de un Form a otro en C# Trata de usar para ese tipo de casos Clases con variables publicas staticas es decir que no necesitas referenciar la clase para poder acceder a sus miembros y propiedades. digamos que tengamos una clase llamada clspersona.cs en esa clase creas 2 variables como ejemplo public static string nombres; public static string apellidos; en tu form login llamalos asi clspersona.nombres=campoaasignar; clspersona.apellidos=campoaasignar; en tu otro form solo llama la clase asi clspersona.nombres; y obtendras los datos que pasaste del form1 __________________ La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones #5 (permalink) 23/07/2009, 15:38 Fecha de Ingreso: febrero-2009 Ubicacin: Huancan,Puno,Per Mensajes: 114 Antigedad: 3 aos, 11 meses Puntos: 3

hnesys

Respuesta: Pasar datos de un Form a otro en C#

Cita: Iniciado por Dradi7 public static string nombres; public static string apellidos; en tu form login llamalos asi clspersona.nombres=campoaasignar; clspersona.apellidos=campoaasignar; en tu otro form solo llama la clase asi clspersona.nombres; y obtendras los datos que pasaste del form1 Mil gracias la verdad me funcion exactamente, eran esas variables, gracias por el aporte me ayud bastante. gracias Dradi7 por la ayuda, y a todos. #6 (permalink) 24/07/2009, 03:05 Elengel Fecha de Ingreso: mayo-2009 Mensajes: 42 Antigedad: 3 aos, 7 meses Puntos: 1

Respuesta: Pasar datos de un Form a otro en C# Hola, perdonad que me una a este post pero tengo unas dudas muy parecidas a las que mencionais. Yo estoy intentando que me coja los valores que meto en los textbox que tiene mi formulario, el formulario esta creado dentro de una variable stringbuilder la cual contiene todo el codigo html del formulario. Mi duda es como hago para que una vez meta los valores en los textbox me los coja y me los cargue en una nueva pgina dando una bienvenida? Se que es casi igual a lo que planteaba el autor del post y ya he creado una clase que contiene las variables nombre y apellido, el caso es que luego desde mi default.aspx mediante un metodo que contiene el formulario en la variable stringbuilder pongo lo que decis de: clspersona.nombres=campoaasignar; clspersona.apellidos=campoaasignar; pero no me reconoce el id que le he puesto a los texbox. En mi caso la clase que contiene las variables estaticas estan dentro de una dll que se llama Transformacion, por lo que he puesto arriba quedaria de la siguiente manera...

Transformacion.clases.formulario.nombre = (campoaasignar); Transformacion.clases.formulario.apellidos = (campoaasignar); Debajo de esta declaracin es donde tengo definido el formulario dentro de una variable stringbuilder.... sb.Append("<form name=\"formulario\" method=\"post\".... ... .... sb.Append("</form>"); Que estoy haciendo mal? como debo ponerlo para que me coja el valor q meto en los textbox y como hago despues que me los cargue en otra web dando el "bienvenido (nombre (apellidos)" ? Un saludo y gracias. #7 (permalink) 24/07/2009, 04:10 Fecha de Ingreso: agosto-2008 Ubicacin: En internet Mensajes: 1.787 Antigedad: 4 aos, 4 meses Puntos: 113

Fuzzylog

Respuesta: Pasar datos de un Form a otro en C# Yo lo que deca es que hagas un evento en el code behind que maneje esa accin que quieres realizar: Te lo pongo ms fcil. Imagina que realizas el envo al pulsar un botn. Pues coges el VS, le aades un botn desde la parte visual de la aplicacin y haces doble click sobre el botn. Esto genera automticamente el evento onClientClick() donde puedes decir que vaya al segundo formulario y pasarle como parmetros los datos contenidos en los textbox o combobox correspondientes. Luego en el onLoad() del otro formulario recoges esos parmetros y los pones con labels en donde desees. Edito: Cuando digo onLoad() me refiero al Page_Load del code behind y el onClientClick() es realmente el BotonQueSea_Click ltima edicin por Fuzzylog; 24/07/2009 a las 04:32 Razn: Aclarar unas cosas #8 (permalink) 08/06/2012, 17:15 Fecha de Ingreso: octubre-2008 Ubicacin: Corbera del Llobregat Mensajes: 32 Antigedad: 4 aos, 3 meses Puntos: 2

nanduky

Respuesta: Pasar datos de un Form a otro en C# Un millon de gracias Dradi7, llebava buscando esto meses y mese. (Ya se que es un tema viejo, pero hace aos me pas lo mismo con java y despues de muchos meses me d por vencido, y ahora por fin puedo seguir)

Discusin Tcnica Deseo ser notificado cuando se agregue un nuevo tpico Autor asmodeo Tpico: forms en c# forms en c# Publicado: mircoles, 17 de junio de 2009 19:37 (PST) tengo un problema quiero utilizar dos forms una principal que me servira como menu y otra que me servira para realizar diferentes operaciones matematicas, y cambiar el form dependiendo de la operacion. alguien sabe como puedo hacerlo? gracias..

Comentarios: Autor gabriel Tpico: forms en c# Publicado: viernes, 19 de junio de 2009 8:25 (PST) Te refieres a mandar llamar una segunda forma? Sera algo as como esto (aunque, por favor, nunca dejes el nombre de tus formas en los defaults Form1, Form2 etc.)
private void button1_Click(object sender,

EventArgs e) { Form2 frm = new Form2(); frm.Show(); }

Esto, desde la Form1. Aunque, no s si tambin te refieres a que conforme ests en una u otra forma elegir cual quieres que est activa. As sera con
Form2.TopMost = true;

asmodeo

forms en c# Publicado: domingo, 21 de junio de 2009 12:58 (PST) gracias gabriel pero esa no era mi duda. lo que en realidad necesito saber es como modificar la form2 desde la form1 para que haga diferentes operaciones sin tener que cear un monton de formas en el proyecto solo 2 digamos, 3 labels, 3 textbox,y 2 botones y cambiar los textos de los labes dependiendo que operacion quiera realizar. no se si se pueda pero si se puede podrian ayudarme? gracias forms en c# Publicado: lunes, 22 de junio de 2009 7:37 (PST) Hay distintos modos de hacerlo, yo recomendara que en la segunda forma tuvieras una funcin pblica que manipule las propiedades de los controles para que no tengas que meterte mucho con la lgica de tus clases. Imagina que esta es tu primer forma (con dos botones) nota por favor la Form2 como miembro de la clase de Form1:
public partial class Form1 : Form

gabriel

private Form2 frm = new Form2(); public Form1()

{ }

InitializeComponent();

private void button1_Click(object sender,

EventArgs e) { } EventArgs e) { } } frm.setLabelText("Texto desde Form1"); frm.Show();

private void button2_Click(object sender,

Y ahora en tu segunda forma tienes un Label nada ms, pero ah implementas la funcin setLabelText:
public partial class Form2 : Form

public Form2()

{ } { } } InitializeComponent();

public void setLabelText(string str) this.label1.Text = str;

Y algo similar sera para el resto de tus controles que necesites manipular. Agradecera alguna implementacin mejor para este problema que alguien ms pueda aportar. Fernando forms en c# Publicado: lunes, 22 de junio de 2009 13:12 (PST) Algo as como dice Gabriel con mtodos pblicos que desde tu misma Form2 acomodes tus controles de forma acorde a la operacin que quieres realizar, pero desde tu Form1 lo mandes llamar antes de ejecutar el metodo "Show()". public partial class Form1 : Form { private Form2 frm = new Form2(); public Form1() { InitializeComponent(); } private void btnFormato1_Click(object sender, EventArgs e) { frm.Formato1(); frm.Show(); } private void btnFormato2_Click(object sender, EventArgs e) { frm.Formato2(); frm.Show(); } } Ya en tu Form2 tendrias algo como: public partial class Form2 : Form { public Form2()

{ InitializeComponent(); } public void Formato1(string str) { //hacer lo que tengas que hacer para acomodar la forma acorde al Formato1 } public void Formato2(string str) { //hacer lo que tengas que hacer para acomodar la forma acorde al Formato2 } } Te funciona? Hay alguna mejor solucion bajo los requerimientos que tiene? Fernando forms en c# Publicado: lunes, 22 de junio de 2009 13:20 (PST) Error por hacer copy-paste, nunca hagan eso como yo lo hice :-P, en unos segundo mando una mejor opcion forms en c# Publicado: lunes, 22 de junio de 2009 13:48 (PST) En el Form1 puedes tener algo como:
1 using System; 2 using System.Windows.Forms; 3 4 namespace WindowsFormsApplication1 5 { 6 public partial class Form1 : Form 7 { 8 private Form2 frmForm2; 9 10 public Form1() 11 { 12 InitializeComponent(); 13 } 14 15 private void 16CambiarFormato_Click(object sender, EventArgs 17e) 18 { 19 frmForm2 = new Form2(); 20 frmForm2.CambiarFormato(((Button) 21sender).Tag.ToString()); 22 frmForm2.ShowDialog(); } }

Fernando

Pastie #520720 linked directly from Pastie. En el Form2 algo como:


using System.Windows.Forms; 1 2 namespace WindowsFormsApplication1 3 { 4 public partial class Form2 : Form 5 { 6 private string _strFormato; 7 8 public Form2() 9 { 10 InitializeComponent(); 11 } 12 13 public void CambiarFormato(string 14 strFormato) 15 { 16 _strFormato = strFormato; 17 18 switch(strFormato) 19 { 20 case "Formato1": 21 //Llevar a cabo el formato1 22 break; 23 case "Formato2": 24 //Llevar a cabo el formato2 25 break; 26 case "Formato3": 27 //Llevar a cabo el formato3 28 break; 29 } 30 31 lblFormato.Text = _strFormato; 32 } 33 } 34 }

Cmo navegar entre formularios de visual C# 2010

Autor: Alexander Alvarez Vaca Curso: 8/10 (1 opinin) |0 alumnos|Fecha publicacin: 13/12/2011 Enva un mensaje al autor

Forex para principiantes Aprenda con una formacin gratuita Pida hoy su gua PDF y sesin 1-1 iFOREX.esEnlaces patrocinados

Te presentamos un nuevo curso de programacin en donde estaremos aprendiendo algo muy didctico, hoy haremos un pequeo proyecto en Visual Studio 2010 en el cual aprenderemos a navegar de un formulario a otro, navegar de un formulario a otro significa que pasaremos por medio de botones de un formulario a otro.
Visita mi web:http://www.daimonsoftware.com/

Como ya lo sabes estaremos aprendiendo a navegar entre formularios, para hacerlo debemos comenzar abriendo VISUAL STUDIO 2010 y creando un nuevo proyecto, para eso vamos nos a Archivo, Nuevo proyecto tal como se muestra en la siguiente imagen:

De esa manera simplemente obtendremos la siguiere ventana en la cual dejamos los datos como se muestra en esta imagen:

Ahora guardamos el proyecto haciendo clic en Archivo y despus en Guardar todo. Posteriormente agregamos un nuevo formulario para poder as navegar entre formularios de un lado a otro, vamos a agregar dos formularios ms y lo hacemos de la siguiente manera: Proyecto, clic en AGREGAR WINDOWS FORMS como se muestra en la figura siguiente:

Cuando hagamos clic en Agregar Windows FORM nos saldr una ventana igual a la siguiente:

Los datos que nos quedan debemos dejarlos tal como la imagen que podemos ver arriba y hacemos clic en el botn Agregar, repetimos la operacin anterior una vez ms para tener tres formularios. Una vez agregado los formularios deber quedarnos as:

En la imagen anterior vemos que hay tres formularios: Form1.cs, Form2.cs y Form3.cs, ahora vamos al formulario 1 o Form1.vb, y agregamos o arrastramos dos botones deber quedarnos as:

Para lograr entrar al cdigo, debemos hacer doble clic en el BUTTON1, el cual tendr un aspecto como se muestra en la siguiente imagen:

Escribimos el cdigo que necesitamos para que de esa forma nos quede as: Form2 frm = new Form2(); frm.Show(); // mostramos el segun formulario en la imagen siguiente se copia la imagen del cdigo:

Ahora abrimos otra vez el formulario 1 y hacemos doble clic en el boton 2 y debemos escribir el siguiente cdigo:

Posteriormente debemos pasar al diseo del formulario 3 y arrastrarlo a un botn de tal forma que quede de la misma forma que podemos ver en la imagen siguiente:

Hacemos doble clic en BUTTON1 del formulario 3 y dejamos el cdigo de la siguiente forma: Form.ActiveForm.Visible = false; Form1 frm = new Form1(); frm.Show(); // mostramos el primer formulario

Si lo hemos hecho bien deber verse de la siguiente forma como en la siguiente imagen:

Ahora simplemente lo que tenemos que hacer es guardar el proyecto y ejecutar y veas como navegan en tres formularios. Espero que te haya servido.

Cree Su Pgina Web Gratis Construye Pginas Web En 3 Minutos Con Dominio Propio Y Sin Publicidad www.simplesite.com/EnEspanolEnlaces patrocinados

Sobre el curso rpido

Descrgalo en pdf Recibirlo por e-mail

Nuestras novedades en tu e-mail


Escribe tu e-mail:
Escribe aqu tu

Recibir Al presionar "Recibir" ests dndote de alta y aceptas las condiciones legales de mailxmail

Opina sobre este curso

1 opinin de Cmo navegar entre formularios de visual C# 2010


Valoracin usuarios: 8/10

pedro.r... Responder | Denunciar

Modal 8/10 Sobre: Cmo navegar entre formularios de visual C# 201005/01/2012 Me sirvio pero para hacerlo modal?? Que no puedo pasarme a la primera ventana antes de cerrar la segunda. Saludos

Hola, como puedo pasar parametros de variables locales a otro winform y a poder ser que devuelvan un valor si es necesario. los winform los llamo asi Clientes newForm; newForm = new Clientes(); newForm.ShowDialog(); y el otro seria Albaranes newForm; newForm = new Albaranes(); newForm.ShowDialog(); estando los dos en .cs separados Cliente.cs , Albaranes.cs Gracias. Agustin Ads by Google

Plantilla de Gantt Chart : S, es fcil. Nada que instalar. Prubalo de forma gratuita! www.smartsheet.es Impresin de Facturas : 100 Fact. Q.125.00 envo Gratis! En los 22 deptos. PBX 5400-0000 www.impresosgala.net 3 respuestas Tengo una respuesta

Siga el debate

Preguntas similare

Como pasar parametros a un WinForm

Leer las respuestas


#1 Juan Diego Bueno 20/09/2006 - 16:55 | Informe spam Este tema ya se ha tratado varias veces en este grupo. Busca "pasar valores de un form a otro" o algo similar a la pregunta que planteas. O mira si te va este link http://groups.google.com/group/micr...889fe4410f Agustin wrote: Mostrar la cita Responder a este mensaje #2 floyd303 20/09/2006 - 17:05 | Informe spam Hola! Tu sabes como funcionan las clases?? Al fin y al cabo un formulario es una clase. Puedes pasar los parametros a traves del construtor. Tambien los puedes devolver en la misma clase: public class Cliente : Form { integer _val public Cliente(integer iVal) { _val = iVal; // Mas codigo .. } public int Valor () { get {return _val;} } // Mas codigo } Entonces para llamar al formulario

Clientes newForm; newForm = new Clientes( 10 ); // Paso el 10 como parametro al formulario newForm.ShowDialog(); MsgBox ( newForm.Valor ) // Recibo el valor del formulario // Ya no utilizo mas la clase: newForm.Dispose(); newForm = null;

Espero que te ayude Roberto M. Oliva

Agustin ha escrito: Mostrar la cita Responder a este mensaje #3 Agustin 20/09/2006 - 17:27 | Informe spam Gracias, es que estaba hecho un lio ahora ya se como funciona. Muchas Gracias... Agustin escribi en el mensaje news: Mostrar la cita Siga el debate Ads by Google

Responder a este mensaje

Cree Su Pgina Web Gratis : Construye Pginas Web En 3 Minutos Con Dominio Propio Y Sin Publicidad www.simplesite.com/EnEspanol Impresin de Facturas : Facturas Urgentes, Diseo Gratis Autorizados por la SAT PBX 22047602 www.litoexpress.com.gt Sabah's Best Dive Sites : Turtles, Sharks, & Stunning Islands Award Winning PADI 5 Star Resort www.scubajunkiekk.com Colegio Cientfico : Educacin para la Vida Desde Preprimaria a Diversificado www.cci.edu.gt

Agregar mens y elementos de men a formularios Windows Forms


Visual Studio .NET 2003 Personas que lo han encontrado til: 1 de 3 - Valorar este tema

Un men de un formulario Windows Form se crea con un objeto MainMenu, que es una coleccin de objetos MenuItem. Para agregar mens a los formularios Windows Forms en tiempo de diseo, agregue el componente MainMenu y, a continuacin, agrguele elementos de men mediante el Diseador de mens. Los mens tambin se pueden agregar mediante programacin; para ello, agregue uno o varios objetos MainMenu a un formulario Windows Form y agregue objetos MenuItem a la coleccin. Los procedimientos descritos en este tema muestran cmo crear un men sencillo denominado Archivo, ya sea con el Diseador de mens o en el cdigo. Para agregar un men a un formulario Windows Forms en tiempo de diseo
1. Abra el formulario al que desee agregar un men en el Diseador de Windows Forms. 2. En el Cuadro de herramientas, haga doble clic en el componente MainMenu.

Se agregar un men al formulario (con el texto "Escriba aqu") y se agregar el componente MainMenu a la bandeja de componentes. Para agregar un men a un formulario Windows Forms mediante programacin
1. En el Editor de cdigo, cree un nuevo mtodo pblico que incluya el cdigo que agrega el men al formulario. Para obtener ms informacin sobre cmo abrir el Editor de cdigo, vea Mostrar formularios Windows Forms en el Diseador.
2. ' Visual Basic 3. Public Sub AddMenu() 4. 5. End Sub 6. 7. // C# 8. public void AddMenu(){ 9. 10. } 11. 12. // C++ 13. public: 14. void AddMenu() 15. { 16. 17. }

18.Agregue, dentro del mtodo, cdigo similar al siguiente para crear una instancia del componente MainMenu:
19. ' Visual Basic 20. Dim mnuFileMenu as New MainMenu() 21. Me.Menu = mnuFileMenu 22. 23. // C# 24. MainMenu mnuFileMenu = new MainMenu(); 25. this.Menu = mnuFileMenu; 26. 27. // C++ 28. MainMenu *mnuFileMenu = new MainMenu(); 29. this->Menu = mnuFileMenu;

Una vez que haya agregado un componente MainMenu al formulario Windows Forms, deber agregarle elementos de men. El Diseador de mens permite agregar elementos de men al componente de men en tiempo de diseo. El contenido de los mens se mantiene dentro de una coleccin, de modo que, para agregar elementos a un men en tiempo de ejecucin, deber agregar objetos MenuItem a esta coleccin. Para agregar elementos de men a un men en tiempo de diseo
1. Haga clic en el componente MainMenu del formulario Windows Forms.

Se mostrar el texto "Escriba aqu".


2. Haga clic en el texto que se muestra y escriba el nombre del elemento de men que desea agregarle. 3. Para agregar otro elemento de men, haga clic en otra rea "Escriba aqu" dentro del Diseador de mens.

Haga clic en el rea que se encuentra a la derecha del elemento de men actual para agregar un submen.

O bien

Haga clic en el rea que se encuentra bajo el elemento de men actual para agregar otra entrada al mismo men.

Para agregar elementos de men a un men mediante programacin


1. Si no existe ya uno, agregue un componente MainMenu al formulario Windows Forms dentro de un mtodo pblico y asigne una instancia de la clase MainMenu a la propiedad Menu del formulario. Para obtener ms informacin acerca de las colecciones, vea Relacin de los objetos entre s .
2. 3. 4. 5. 6. 7. 8. ' Visual Basic Public Sub AddMenuAndItems() Dim mnuFileMenu as New MainMenu() Me.Menu = mnuFileMenu End Sub // C#

9. public void AddMenuAndItems(){ 10. MainMenu mnuFileMenu = new MainMenu(); 11. this.Menu = mnuFileMenu; 12. } 13. 14. // C++ 15. public: 16. void AddMenu() 17. { 18. MainMenu *mnuFileMenu = new MainMenu(); 19. this->Menu = mnuFileMenu; 20. }

21.Dentro del mtodo, cree objetos MenuItem para agregarlos a la coleccin del objeto MainMenu:
22. ' Visual Basic 23. Dim myMenuItemFile as New MenuItem("&File") 24. Dim myMenuItemNew as New MenuItem("&New") 25. 26. // C# 27. MenuItem myMenuItemFile = new MenuItem("&File"); 28. MenuItem myMenuItemNew = new MenuItem("&New"); 29. 30. // C++ 31. MenuItem *myMenuItemFile = new MenuItem(S"&File"); 32. MenuItem *myMenuItemNew = new MenuItem(S"&New");

Nota De forma predeterminada, un objeto MainMenu no contiene elementos de men, de modo que el primer elemento de men que se agrega se convierte en encabezado del men. sta es la razn por la que la propiedad Text de myMenuItemFile se establece en &File. 33.Dentro del mtodo, asigne el elemento de men de nivel superior y agrguele los elementos de men siguientes:
34. ' Visual Basic 35. mnuFileMenu.MenuItems.Add(myMenuItemFile) 36. myMenuItemFile.MenuItems.Add(myMenuItemNew) 37. 38. // C# 39. mnuFileMenu.MenuItems.Add(myMenuItemFile); 40. myMenuItemFile.MenuItems.Add(myMenuItemNew); 41. 42. // C++ 43. mnuFileMenu->MenuItems->Add(myMenuItemFile); 44. myMenuItemFile->MenuItems->Add(myMenuItemNew);

Nota Para crear submens, puede agregar objetos MenuItem a la propiedad MenuItems del objeto MenuItem primario. En el ejemplo anterior, si deseara agregar un tercer elemento de men (myMenuItemFolder) como submen del segundo elemento de men (myMenuItemNew), debera incluir las siguientes lneas de cdigo:
' Visual Basic Dim myMenuItemFolder as New MenuItem("&Folder") myMenuItemNew.MenuItems.Add(myMenuItemFolder) // C#

MenuItem myMenuItemFolder = new MenuItem("&Folder"); myMenuItemNew.MenuItems.Add(myMenuItemFolder); // C++ MenuItem *myMenuItemFolder = new MenuItem(S"&Folder"); myMenuItemNew->MenuItems->Add(myMenuItemFolder);

Los elementos de men tambin se pueden agregar dinmicamente en el momento de crearlos, de forma que las propiedades se establecen en el momento de crearlas y agregarlas. Por ejemplo, para agregar un cuarto elemento de men a la coleccin anterior, escriba el fragmento de cdigo siguiente:
' Visual Basic mnuFileMenu.MenuItems.Add("Save &As") // C# mnuFileMenu.MenuItems.Add("Save &As"); // C++ mnuFileMenu->MenuItems->Add("Save &As");

C# motrar/ocultar menu principal desde otro form?


Hola necesito ayuda en c#. el problema es que estoy haciendo un proyecto en el cual tengo el form principal y el de inicio de sesion. el de sesion carga dspues del principal (osea dentro de este). o que necesito es ocultar el menu del principal al cargar y cuando inicie sesion correctamente que lo muestre para q el user pueda manipular el sistema normal. aqui dejo este codigo pero no me funciona if (Sesion_existente.HasRows) { MessageBox.Show("Inicio Sesion exitoso"); frmMain Main = new frmMain(); Main.mnuMainMenu.Visible = True; // aqui trato de que el menu del form principal sea vsible Main.Text = "entro"; Main.Refresh(); this.Close(); } gracias de antemano

hace 3 aos Notificar un abuso

Alvaroo!

Mejor respuesta - Elegida por la comunidad


Que lastima que no tengo conocimiento de tu pregunta pero en http://www.google.cl puedes acceder y as buscar la peticin a tu pregunta.

hace 3 aos Notificar un abuso

60% 3 votos 1 persona la calific como buena


0 estrellas - destcala Destcala! Enviar Comentario(s) (0) Guardar


o o o

Otras respuestas (1)

NeuroJor... Te sugiero que en el evento load del principal pongas invisible el men y cuando se entre a la ventana de autentificacin guardes en una variable tipo bool el resultado de la autentificacin. Esa variable la entregas al cerrar ese formulario. Eso te regresa al evento load del principal ya con el valor adquirido, si es true, continuas y vuelves visible el men en caso contrario cierras el formulario previo aviso de error. Si necesitas ms informacin me contactas.

Fuente(s):
mi experiencia en C#

[C#] Comunicacion entre formularios MDI en: 9 Octubre 2012, 18:14 Hoa, bueno tengo dos formularios. Uno es frmMain que es el contenedor MDI, y un formulario frmLogin que es mdi child del primero. frmMain tambien tiene un menu tipo MenuStrip. Cuando inicio la aplicacion invalido el menu. La idea es que cuando el usuario ponga el password y usuario correcto en el formulario frmLogin este se cierre, y habilite nuevamente el menu de frmMain. Lo que no se es como llamar a metodos del elemento menu, que esta en el formularo frmMain, desde un boton en frmLogin...no se si me explico? xD frmMain.cs: Cdigo
1. using System; 2. using System.Collections.Generic; 3. using System.ComponentModel; 4. using System.Data; 5. using System.Drawing; 6. using System.Linq; 7. using System.Text; 8. using System.Windows.Forms; 9. 10. namespace SistemaEmpleo 11. { 12. 13. public partial class frmMain : Form { FormLogin frmLogin = new FormLogin();

14.
15. 16. 17. 18. 19. 20. 21. 22.

public frmMain() { InitializeComponent(); frmLogin.MdiParent = this; this.Bloquear(); frmLogin.Show(); }

23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. } } } public void Desloquear() { mnuInicio.Enabled = true; } public void Bloquear() { mnuInicio.Enabled = false;

frmLogin.cs: Cdigo
1. using System; 2. using System.Collections.Generic; 3. using System.ComponentModel; 4. using System.Data; 5. using System.Drawing; 6. using System.Linq; 7. using System.Text; 8. using System.Windows.Forms; 9. 10. namespace SistemaEmpleo 11. { 12. 13. 14. public partial class FormLogin : Form {

15. 16. 17. 18. 19. 20. e) 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.

public FormLogin() { InitializeComponent(); }

private void btnEntrar_Click(object sender, EventArgs

{ String User = txtUser.Text.ToString(); String Clave = txtClave.Text.ToString();

this.Login(User, Clave); }

private void Login(String User, String Clave) { if (User == "admin" || Clave == "kobe") { // Aca deso hacer algo como 'mnuInicio.Enabled = false o 'frmMain.Desloquear()' // ; } }

33. 34. 35. 36. 37. 38. } 39. 40. }

Curso C# Varios Formularios


Archivado en: .net, Curso C#, Programacin Etiquetas: curso .net, Curso C#, curso programacion, Programacin, varios formularios, varios formularios c# 3nk1 @ 10:58 AM

Buenas. Tras un tiempo sin publicar nada, vuelvo a retomar el curso de c#. Si te has perdido el resto de cursos solo tienes que darte una vuelta por el blog para comprobar las anteriores entregas del mismo. En esta entrega, vamos a continuar con la programacin visual y vamos a crear varios formularios para poder trabajar entre ellos. Como ya bien indicamos en anteriores entregas, un formulario es la clase primigenia para nuestras aplicaciones de Windows Forms. Siempre que creemos un nuevo proyecto de aplicacin en ventana, nos creara a su vez un objeto de tipo Form1. Un formulario no deja de ser una clase, pregenerada por Visual Studio. Si nos fijamos detalladamente este tipo de clase esta compuesto por varios ficheros con el mismo nombre. Esto se debe a que para un mayor orden del cdigo se ha separado el diseo, nuestro fichero que contiene la extensin .designer, del cdigo que ser nuestro formulario original. Esta separacin se da a partir de Visual Studio 2005, por eso, si tenemos algn proyecto de una versin anterior, podremos ver como hay una regin denominada Creada por el diseador de windows forms, lo incluido ah, es lo que anteriormente podamos ver en el fichero .designer. Ahora bien, trabajar con varios formularios no es excesivamente dificil, solamente, debemos marcar dentro de nuestro proyecto con el botn derecho, windows forms. Como puede verse en la imagen. Posteriormente nos aparecer un formulario indicando que nombre queremos poner a nuestro nuevo archivo y a partir de ah, tendremos un nuevo formulario.

Un apartado importante cuando tenemos un proyecto con varios formularios es la configuracin del proyecto. Si volvemos a pulsar con el botn derecho sobre el proyecto y seleccionamos la opcin de propiedades, se nos abrir una ventana con opciones como la siguiente:

Aunque desde la ventana de propiedades del proyecto, podemos modificar bastantes aspectos de nuestra aplicacin. En esta ocasin vamos a quedarnos solamente con la primera pestaa. Desde ah, podemos ver el nombre del ensamblado y del proyecto, el icono de nuestra aplicacin, la versin del framework que vamos a usar, etc. Podemos jugar con esos valores, pero quera que hicieramos hincapi en el elemento que pone objeto de inicio. Si desplegamos el cuadro de dialogo, nos saldr las opciones de Sin establecer y el fichero de Program. Si estuviesemos usando Visual Basic, nos saldran cada uno de los formularios que hayamos creado y como queremos cerrar nuestra aplicacin, cuando se cierre el ltimo formulario o cuando se cierre el formulario general. Pero ahora mismo, estamos en C# y si nos digirimos al fichero de program pregenerado por el Ide veremos las siguientes lneas: Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); Nos vamos a quedar con la ltima lnea. Application.Run(new Form1());. Que viene a decir, que nuestra aplicacin cargue el formulario Form1. Si modificamos esa lnea y pusiesemos Form2. Se ejecutara el formulario que tuviesemos como nuestro segundo. Pero, no solo se encarga de lanzar nuestro formulario, si no tambin de indicar nuestro formulario principal, es decir, si el formulario que aparece indicado en el fichero de Program es cerrado, se terminar nuestra aplicacin. Por qu ocurre esto? Por una razn muy sencilla, realmente el archivo Program de nuestra aplicacin no deja de ser el Main de la misma. Por lo cual, este llama o arranca, con el mtodo Run nuestro formulario indicado y lo deja cargando. Si este finaliza, como por ejemplo, cuando lo cerramos, pasaremos de esa sentencia a la siguiente. Como, no hay ms lneas, implica que nuestra aplicacin ha finalizado. Partiendo de ese hecho, siempre tendremos un formulario principal y si cerramos tal formulario la aplicacin terminara. Si, es as, aunque puede modificarse el cdigo para evitar que se pueda cerrar la aplicacin, cuando el formulario principal sea cerrado, que podremos explicar en posteriores entregas. No obstante, la lgica de la aplicacin es que trabajemos sobre una ventana o formulario y tras este vayamos generando nuevos.

Despus de aprender un poco, como funciona nuestra aplicacin con ventanas, pasaremos a trabajar con varios formularios. Trabajar con varios formularios es algo completamente sencillo y fcil de hacer. Para el ejemplo inicial, vamos a tomar el proyecto que estabamos usando e introduciremos un botn en el Form1. Dentro del evento de clicado de ese botn, haremos lo siguiente, instanciaremos nuestro nuevo formulario y lo mostraremos. Dentro de .Net existen dos maneras para mostrar un nuevo formulario, podemos mostrarla con el mtodo Show o con el mtodo ShowDialog. La diferencia entre ambos, es que el segundo mostrara el formulario en dialogo, es decir, no nos permitir trabajar con el resto de la aplicacin hasta que hayamos finalizado con ese formulario. Este segundo mtodo resulta ms que recomendable para esperamos datos de este segundo formulario para el principal, pero en el caso de que queramos mostrar informacin, solo ser necesario usar el mtodo Show y que el resto de la aplicacin contine funcionando. La manera de hacer mostrar otro formulario sera con las siguientes lneas de cdigo. Form2 nuevo_formulario = new Form2(); nuevo_formulario.Show(); Resulta completamente sencillo, verdad, solo debemos instanciar nuestro formulario y posteriormente mostrarlo. La dificultad comienza en otro momento. Que ocurre cuando queremos pasar informacin entre ambos formularios? Cuando comenc a estudiar programacin y usaba .Net, esa duda me resultaba dolorosa, ya que no terminaba de encontrar el mtodo ms adecuado para pasar informacin desde un formulario a otro. En el fondo, son piezas completamente independientes. Para esta respuesta, hay varias maneras de poder solucionarlo, sin generar demasiado descontrol en la aplicacin , diseo y mantenimiento de la misma y si alguien conoce alguna ms estoy dispuesto a escucharle en los comentarios. El primer mtodo que podemos usar, es teniendo propiedades publicas entre formularios, simplemente deberamos crear una variable global para ese formulario y darle la privacidad publica. De esa manera podemos acceder desde otro formulario sin ningn tipo de problema. Nos pararemos a detallar las maneras de armar una clase un poco ms adelante en el curso. Pero para generar una propiedad solo tendramos que poner dentro de la declaracin del formulario lo siguiente. public (tipo de variable) (nombre de variable) El segundo mtodo, para poder pasar informacin entre formularios, es usando una clase esttica y con propiedades publicas. Teniendo los parametros de accesibilidad de la clase bien definidos. Podemos tener una clase contenedora de valores, que vaciaremos en ciertos momentos. Me parare ms tranquilamente a mostrar como crear una clase de estas caracteristicas cuando lleguemos a construir una clase dentro del curso.

Un tercer mtodo que nos permite enviar datos de un formulario a otro, es sobrecargando el mtodo Show(), introduciendo el valor de las variables, no obstante, debemos tener sumo cuidado al sobrecargar este mtodo. Ya que, debemos llamar al propio show de la clase para que finalmente se muestre tras realizar nuestras tareas. Hasta aqu, nuestro apartado de como crear nuestra aplicacin con multiples formularios. En proximos cursos os mostrar de que manera podemos crear clases que nos permitan una mejor manera de poder usar nuestras clases y a partir de ah, poder realizar aplicaciones potentes. Un saludo y ante cualquier duda, solo debeis comentar para realizar vuestras consultas.
About these ads

Me gusta One blogger likes this.

Comentarios (9)

9 comentarios
1.

Gracias hermano, precisamente eso era lo que que estaba buscando ahora. el como hacer que mi aplicacin levantara por otro formulario y no por form1, que es que cuando ya tenia la aplicacin hecha me pareci que no era la mas indicada para ser la primera cara del programa y no quera hacer otra aplicacin y tener que estar copiando el cdigo de nuevo. gracias. es verdad que Internet es lo mximo. Comentario por michel 6 diciembre, 2010 @ 8:33 PM

Responder

Me alegro que te sirviese. Espero que sigas visitando el blog para cualquier duda que te vaya surgiendo. Un saludo. Comentario por 3nk1 7 diciembre, 2010 @ 11:10 AM
Responder

2. [...] de control. Estructuras de repeticin. Manejo de los controles bsicos I , II , III. Varios formularios Tipos de datos. Creacin de clases. Creacin de clases II. Control de ficheros. Control [...] Pingback por Curso C# Developer's Diary 3 enero, 2011 @ 7:31 AM
Responder

3.

Hola bro mira el problema que yo tengo es el siguiente quiero tener 2 formularios en el form1 quiero tener un boton y una caja de texto. el boton llamara al form2 donde tengo 2 cajas de texto en una coloco el nombre y en otra la edad, bien tengo un boton que quiero que le mande esos 2 datos a mi caja de texto del form1 Comentario por Arturo 30 marzo, 2011 @ 6:13 AM
Responder

Es muy sencillo Arturo, de hecho en otro post comentamos como pasar variables de un lado a otro. Para algo tan sencillo, solo debes crearte propiedades publicas en el formulario dos, por ejemplo. Te recomiendo que cuando vayas a mostrar el formulario2, lo hagas con el mtodo ShowDialog. Porque de esa manera, no continuars trabajando con el anterior formulario hasta que termines con los datos de este. Entonces, supongo que en el form2 tienes un botn aceptar o cancelar. Solo tienes que igualar los valores de esas cajas de texto, a las

propiedades para luego recuperarlas en tu formulario1. Si muestras con ShowDialog, no continuara la ejecucin desde el form1. Por lo tanto desde la llamada del formulario2 en el form1 solo tienes que llamar a las propiedades que has creado y recoger esos datos. Espero haber respondido tu pregunta. Saludos. Comentario por 3nk1 30 marzo, 2011 @ 12:43 PM
Responder

4.

Buenas noches, tengo una duda sobre trabajar con mas de un formulario a la vez en Visual C#, y es la siguiente: Ya cree los dos formularios que necesito para desarrollar el proyecto, y ya tienen sus correspondientes herramientas (label, textBox, etc.), el problema se presenta en que necesito que los datos que se llenan en el form1 sean llamados desde el form2, sin necesidad de volver a escribirlos en los textbox del segundo formulario. Ambos formularios tienen los mismos label y textbox, por supuesto los nombres de los textbox son distintos en los dos formularios. Intente hacerlo con el siguiente codigo, sin embargo solo me funciona con un textbox, aunque intente crear otras variables no las acepta, me da error. Soy nueva trabajando en este lenguaje. Gracias de antemano, feliz noche En el FORM1: private void button1_Click(object sender, EventArgs e) { Form2 ventana2 = new Form2(); ventana2.Show(); Variable = textBox1.Text; } En el FORM2: private void textBox1_TextChanged(object sender, EventArgs e) { textBox2.Text = Form1.Variable; }

Comentario por Nancy Paredes 3 enero, 2012 @ 11:16 PM


Responder

Por lo que veo est bien lo que creas Nancy. Lo que me llama la atencin es que introduces esa variable desde el evento TextChanged, no creo que sea el evento adecuado para introducir el valor de la variable, porque va a requerir que se modifique el texto del textbox para que se cambie la variable. Yo te recomendara que fuese dentro del evento Load del formulario dos, dentro del formulario uno tienes que crear tantas variables como valores quieras pasar, puedes llegar a usar una estructura o una clase para que te resulte ms cmodo. Entonces el evento Load del formulario 2 quedara similar a este: private void Form2_Load(object sender , EventArgs e) { textBox2.Text = Form1.VariableTextBox2; textbox1.Text = Form1.VariableTextBox1; } Si lo que quieres es que se complete en ambos formularios a la misma vez, tienes que hacer lo siguiente. Debes crear el formulario 2 como privada, eso requiere que sea dentro de la declaracin del formulario1, similar a esto. Public Form1 { private miForm2 = new Form2(); //Las declaraciones pertinentes. } Para que se cambien en tiempo real, tienes que incluir los eventos textChanged de los textbox del formulario 1. Imagina que el textbox1 del Form1 se asocia con el textbox1 del Form2. Tendras que poner dentro de la ventana de propiedades del textbox1 del Form2 como publico y poner el siguiente cdigo dentro del evento de TextChanged del form1. private void textBox1_TextChanged(object sender , EventArgs e) { miForm2.Textbox1.Text = this.Textbox1.Text; }

Cuando vayas a abrir el formulario 2, van a aparecerte los valores que ya hayas introducido dentro del textbox1 del formulario 1. Puede resultarte algo lioso, pero no te desanimes y si tienes alguna duda ms, solo tienes que preguntar en los comentarios. Un saludo. Comentario por 3nk1 4 enero, 2012 @ 8:54 AM
Responder

5.

si creo un meno que me envie a otro formulario, y tengo un boton que me regrese al menu como le ago para que al ir y regresar del menu al formulario no me aparescan tantas ventanas en la barra de tareas..de windows Comentario por frank 4 octubre, 2012 @ 1:34 PM
Responder

Buena pregunta frank. Estaba buscando como ayudarte para agrupar las ventanas en el mismo recuadro, pero no encuentro nada, porque creo que es una funcin que realiza automaticamente Windows. No obstante, lo ms lgico tambin es que despus de realizar las operaciones pertinentes en esa ventana la cierres tu usando el mtodo this.Close(). Ya que toda la informacin que puedas necesitar de esa ventana la puedes almacenar en alguna de tus clases. No s si con estas dos ideas logro solventar tu duda en caso que quieras ampliar algo ms de informacin, solo comentalo en el foro. Un saludo. Comentario por 3nk1 4 octubre, 2012 @ 8:57 PM
Responder

Вам также может понравиться