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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [C#] Comunicacion entre formularios MDI
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C#] Comunicacion entre formularios MDI  (Leído 6,483 veces)
[u]nsigned


Desconectado Desconectado

Mensajes: 2.397

JS/Node developer


Ver Perfil WWW
[C#] Comunicacion entre formularios MDI
« en: 9 Octubre 2012, 18:14 pm »

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:
Código
  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.    public partial class frmMain : Form
  13.    {
  14.        FormLogin frmLogin = new FormLogin();
  15.  
  16.        public frmMain()
  17.        {
  18.            InitializeComponent();
  19.            frmLogin.MdiParent = this;
  20.            this.Bloquear();
  21.            frmLogin.Show();
  22.        }
  23.  
  24.        public void Bloquear()
  25.        {
  26.            mnuInicio.Enabled = false;
  27.        }
  28.  
  29.       public void Desloquear()
  30.        {
  31.            mnuInicio.Enabled = true;
  32.        }
  33.  
  34.    }
  35. }

frmLogin.cs:
Código
  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.    public partial class FormLogin : Form
  13.    {
  14.  
  15.        public FormLogin()
  16.        {
  17.            InitializeComponent();
  18.        }
  19.  
  20.        private void btnEntrar_Click(object sender, EventArgs e)
  21.        {
  22.            String User = txtUser.Text.ToString();
  23.            String Clave = txtClave.Text.ToString();
  24.  
  25.            this.Login(User, Clave);
  26.        }
  27.  
  28.        private void Login(String User, String Clave)
  29.        {
  30.            if (User == "admin" || Clave == "kobe")
  31.            {
  32.                // Aca deso hacer algo como 'mnuInicio.Enabled = false o 'frmMain.Desloquear()' //
  33.                ;
  34.            }
  35.        }
  36.  
  37.    }
  38. }
  39.  
  40.  


En línea

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!
Siuto
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.587


Que puedo decir??


Ver Perfil WWW
Re: [C#] Comunicacion entre formularios MDI
« Respuesta #1 en: 14 Octubre 2012, 21:34 pm »

La habilitación/deshabilitación del menú no la tenes que hacer desde el formulario de login, tenes que hacer que el formulario de login devuelva un respuesta al formulario principal y dependiendo de la respuesta que el form principal habilite o no el menú.

Las respuestas pueden ser un DialogResult o podes generar alguna propiedad al formulario de login para que una vez termine su ejecución puedas consultarla desde el formulario principal.


En línea

[u]nsigned


Desconectado Desconectado

Mensajes: 2.397

JS/Node developer


Ver Perfil WWW
Re: [C#] Comunicacion entre formularios MDI
« Respuesta #2 en: 15 Octubre 2012, 16:29 pm »

Gracias por responder. Pero si o si hay que usar 'hacks', es decir no hay una forma trasparente y nativa de acceder a objetos entre formularios?  :huh:

Estuve haciendo unas pruebas. Lo primero que note es que desde un mdicotainer no se puede invocar un dialog.

Pero volviendo al tema, en el formulario que uso como Dialog tengo un boton btnOk que tiene la propiedad DialogResult=Yes. Es posible evitar que cuando lo clickeo el dialogo se cierre automaticamente. Es decir me gustaria hacer algunas operaciones, y luego decidir yo si cierro o no el dialog form. Algo asi como el preventDefault de jQuery.

Saludos

« Última modificación: 15 Octubre 2012, 18:10 pm por El As del Club Paris » En línea

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!
spiritdead

Desconectado Desconectado

Mensajes: 296


Ver Perfil
Re: [C#] Comunicacion entre formularios MDI
« Respuesta #3 en: 15 Octubre 2012, 22:31 pm »

la verdad es que no se porque se enrollan tanto
primero, los formularios son creados dinamicamente o son Forms prediseñados ?

para obtener acceso a una variable de otra form debes usar la nomenclatura(VBNET)

PUBLIC variable as tipo-de-variable

al ser 1 variable publica puedes acceder a ella desde cualquier parte de tu proyecto haciendo referencia

class.nombre-de-variable.accion-etc

En línea

Facilitador De Tareas - Task Simplifier (FDT)
[u]nsigned


Desconectado Desconectado

Mensajes: 2.397

JS/Node developer


Ver Perfil WWW
Re: [C#] Comunicacion entre formularios MDI
« Respuesta #4 en: 16 Octubre 2012, 13:16 pm »

Econtre la mejor solucion en crear metodos publicos locales en los formularios, y luego llamarlos desde el otro form. xD
En línea

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!
Maurice_Lupin


Desconectado Desconectado

Mensajes: 356

GPS


Ver Perfil WWW
Re: [C#] Comunicacion entre formularios MDI
« Respuesta #5 en: 21 Octubre 2012, 19:36 pm »

El problema al crear variables que almacenan info de seguridad, es que facilitas el parcheo de tu aplicación  :huh: .

Saludos.
En línea

Un error se comete al equivocarse.
spiritdead

Desconectado Desconectado

Mensajes: 296


Ver Perfil
Re: [C#] Comunicacion entre formularios MDI
« Respuesta #6 en: 21 Octubre 2012, 20:26 pm »

y por esa razon, 1 de mis variables tube q meterle cifrado RSA u.u
En línea

Facilitador De Tareas - Task Simplifier (FDT)
Maurice_Lupin


Desconectado Desconectado

Mensajes: 356

GPS


Ver Perfil WWW
Re: [C#] Comunicacion entre formularios MDI
« Respuesta #7 en: 22 Octubre 2012, 17:24 pm »

y por esa razon, 1 de mis variables tube q meterle cifrado RSA u.u

Aún así, si haces una comprobación como esta:

Código
  1. If registrado() Then
  2.   ...
  3.   ...
  4. End If

Cualquier función que devuelva Boolean o una comprobación con If, es fácil parcharla, me está jodiend esto de los parchadores que luego comercializan con descaro   >:(

Saludos.
En línea

Un error se comete al equivocarse.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[C++]¿Comunicacion entre clases? « 1 2 »
Programación C/C++
skorpion32 14 15,443 Último mensaje 2 Agosto 2011, 01:24 am
por [L]ord [R]NA
Comunicacion entre 2 sockets
Programación C/C++
hayholt 0 1,886 Último mensaje 30 Enero 2012, 09:08 am
por hayholt
Comunicación entre terminales Linux
Noticias
wolfbcn 0 1,830 Último mensaje 19 Noviembre 2012, 23:24 pm
por wolfbcn
Comunicacion entre dos formularios
.NET (C#, VB.NET, ASP)
edurm13 1 1,854 Último mensaje 30 Abril 2013, 17:49 pm
por TrashAmbishion
Comunicacion entre dos ordenadores en distintas redes
Redes
iggarci 8 3,320 Último mensaje 15 Enero 2014, 16:53 pm
por Platanito Mx
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines