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:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace SistemaEmpleo
{
public partial class frmMain : Form
{
FormLogin frmLogin = new FormLogin();
public frmMain()
{
InitializeComponent();
frmLogin.MdiParent = this;
this.Bloquear();
frmLogin.Show();
}
public void Bloquear()
{
mnuInicio.Enabled = false;
}
public void Desloquear()
{
mnuInicio.Enabled = true;
}
}
}
frmLogin.cs:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace SistemaEmpleo
{
public partial class FormLogin : Form
{
public FormLogin()
{
InitializeComponent();
}
private void btnEntrar_Click(object sender, EventArgs e)
{
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()' //
;
}
}
}
}
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.
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
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
Econtre la mejor solucion en crear metodos publicos locales en los formularios, y luego llamarlos desde el otro form. xD
El problema al crear variables que almacenan info de seguridad, es que facilitas el parcheo de tu aplicación :huh: .
Saludos.
y por esa razon, 1 de mis variables tube q meterle cifrado RSA u.u
Cita de: spiritdead en 21 Octubre 2012, 20:26 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:
If registrado() Then
...
...
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.