Foros del Web » Programación para mayores de 30 ;) » .NET »

Conversion de Tipos En VS2003

Estas en el tema de Conversion de Tipos En VS2003 en el foro de .NET en Foros del Web. Hola y saludos a todos En un programita desarrollado recientemente se me presenta la siguiente situacion: Las opciones a las cuales tiene derecho los usuarios ...
  #1 (permalink)  
Antiguo 01/03/2006, 11:12
 
Fecha de Ingreso: mayo-2004
Mensajes: 10
Antigüedad: 20 años
Puntos: 0
Conversion de Tipos En VS2003

Hola y saludos a todos

En un programita desarrollado recientemente se me presenta la siguiente situacion:

Las opciones a las cuales tiene derecho los usuarios estan registradas en una Tabla de una DB(SQL) y su contenido seria el siguiente:

UserId MenuId OpcionId Clase
01 1 1 FrmVehiculos
01 1 2 FrmClientes
01 2 1 FrmLiquidaciones

UserId ==> Identificación del Usuario
MenuId ==> Identificación del Menu
OpcionId ==> Identificació de la Opcion
Clase ==> Clase en .Net, osea el Formulario que se mostrara al dar click
en la opción del Menu

el problema es el siguiente:

La rutina para generar y visualizar el menu funciona perfectamente . El problema radica en hacer que al dar click en la opcion se muestre el formulario, porque?

Cuando se Agregan las Opciones al menu se le indica que habra un metodo encargado de ejecutar el evento click de la opcion:

AddHandler MnuHijo.Click, New System.EventHandler(AddressOf OptionClick)

Cuando se ejecuta el evento quiero hacer la conversion es decir de un formulario cualquiera al tipo de formulario que se debe cargar el cual esta registrado en la columna de la tabla algo como esto

Private Shared Sub OptionClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim Opcion As imgMenuItem = CType(sender, imgMenuItem)
Dim Frm As System.Windows.Forms.Form = CType(Frm,Problema)
Frm.Show()
End Sub

Donde esta escrito problema debo encontra la forma de decirle el tipo de dato, osea la clase de punto net y como es un string marcar error y no puede hacer la conversion necesaria

De antemano gracias por el tiempo tomado para leer este periodico.
Todas las ayudas y sugerencias son bien recibidas.

Gracias
  #2 (permalink)  
Antiguo 01/03/2006, 21:06
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Aquí una forma simple de hacerlo, supongo que no necesita explicación:
Código:
public Hashtable instances = new Hashtable();
public Form Open(string type)
{
    try
    {
        Form form = instances[type] as Form;
        if (form == null || form.IsDisposed)
        {
            form = Activator.CreateInstance(null, type).Unwrap() as Form;
            instances[type] = form;
        }
        if (this.IsMdiContainer)
            form.MdiParent = this;
        form.Activate();
        form.Show();
        return form; // Por si quieres hacer algo con el formulario
    }
    catch (Exception ex)
    {
        // Maneja el error
        return null;// ?
    }
}

private void OptionClick(object sender, System.EventArgs e)
{
    MenuItem mi = sender as MenuItem;
    // Se asume que en mi.Text está el tipo del formulario, Ej: MyCompany.MyApp.MyClass
    Open(mi.Text);
}
Saludos
PS. El paso de c# a vb.net queda como tarea
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 02/03/2006, 08:17
 
Fecha de Ingreso: mayo-2004
Mensajes: 10
Antigüedad: 20 años
Puntos: 0
De acuerdo

Reverendas gracias.

Funciono de una, problema resuelto.

usted por que sabe tanto?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:38.