como abrir formulario pasado por variable.

07/02/2007 - 23:03 por Xuri | Informe spam
Hola, queria saber como hacer algo asi


form formulario = new form();

pero que formulario sea una variable.. por ejemplo

string nombre_form = "clientes";
form nombre_form = new form ();


y asi poder abrir con esa linea de codigo varios formularios. no se si me
explico.



Gracias. Un saludo

Ademas

Preguntas similare

Leer las respuestas

#11 Xuri
10/02/2007 - 02:07 | Informe spam
lamentablemente tengo que decir que no ha funcionado, pero realmente la
estructura que te puse, es ...

facturacion es el namespace

clases es una carpeta contenedora
formularios es otra carpeta contenedora

formulario es una clase del tipo form y esta dentro de clases

clientes es una clase del tipo formulario y esta dentro de formularios.

Vaya, pensaba que era una pregunta de novatos, pero esto lo veo muy util
para crear una clase para abrir formularios con un solo comando y hacer un
"motor" para hacer aplicaciones de gestion que es lo que estoy haciendo


"rogerrod61" wrote:

Hola, gracias por proporcionarme como tienes tus clases, así pude
hacer pruebas más reales, espero que ahora te funcione como lo
necesitas.

string wSTproyecto > System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
string wSTformulario = "clientes";
wSTformulario = wSTproyecto + ".Facturacion+Formularios+" +
wSTformulario;
Facturacion.Clases wFO > (Facturacion.Clases)Activator.CreateInstance(Type.GetType(wSTformulario));
wFO.Show();

Funciona bien, como verás, si hay manera, solamente que al no conocer
como esta la estructura de las clases es como estar en tinieblas. De
no funcionarte, hazme el favor de proporcionarme la clase Facturacion
y con gusto te preparare las sentencias correspondientes o te envio
mis pruebas, pero creo que no será necesario. Ten cuidado con los
puntos y los signos especialmente en ".Facturacion+Formularios+".
Según tu estructura de clases, Facturacion.Clases lo usas como tipo y
Facturación.Formularios es donde alojas tus formularios, así podrás
acceder a cualquiera de ellos con string.

Este hilo me sirvio mucho y ha sido muy educativo, gracias por
permitirme colaborarte, Me ayudaria mucho saber si te funcionó,
saludos,


Roger

PD
Funciona asumiendo que tienes las clases de la siguiente forma o algo
así:

namespace WindowsApplication1
{
public class Facturacion
{
public class Clases : Form
{
// Métodos, Clases objetos, etc.
}

public class Formularios
{
public partial class clientes : Clases
{
public clientes()
{
}
}
public partial class inventario : Clases
{
public inventario()
{
}
}
}
}
}



Respuesta Responder a este mensaje
#12 rogerrod61
10/02/2007 - 02:34 | Informe spam
Bueno, creo que no funciona porque no tengo la estructura de proyecto,
pues todos los ejemplos los he probado antes de publicarlos. Si eres
tan amable de enviarme un prototipo de como tienes tu proyecto, con
gusto lo revisaré y te lo regreso con la solución.

Por favor me lo envias en zip a (rogerrod61 arroba gmail.com) te
coloco así el correo porque a veces lo trunca.

Saludos,

Roger
Respuesta Responder a este mensaje
#13 Xuri
10/02/2007 - 15:16 | Informe spam
emm, es que las pruebas las estoy haciendo en el metodo MAIN, no es que me
de palo enviarlo, pero no veras nada, simplemnente el esquema que he
comentado anteiormente.

Seguire investigando pero me da error de Type nulo.

Habia pensado hacer un Case. por ejemplo

abrir_form("clientes");

public void abrir_form(string nombre_form){

do case nombre_form
case "clientes":
clientes form_clientes = new clientes();
break;
..
end case
}
Ahora no me acuerdo del esquema del case, pero algo asi no funcionaria
tambien? y se complica mucho menos.



}




Un saludo.
"rogerrod61" wrote:

Bueno, creo que no funciona porque no tengo la estructura de proyecto,
pues todos los ejemplos los he probado antes de publicarlos. Si eres
tan amable de enviarme un prototipo de como tienes tu proyecto, con
gusto lo revisaré y te lo regreso con la solución.

Por favor me lo envias en zip a (rogerrod61 arroba gmail.com) te
coloco así el correo porque a veces lo trunca.

Saludos,

Roger


Respuesta Responder a este mensaje
#14 rogerrod61
10/02/2007 - 20:15 | Informe spam
Hola, si puede funcionarte de esa forma, lo único es que cada vez que
incorpores un formulario deberás aumentarle un case.
Si deseas completarlo genéricamente, solo envíame un prototipo de como
tienes las clases, no te pido el proyecto solo un prototipo que
incluya solamente como tienes las clases, pues .net es tan extenso que
podría hacerse de muchas formas, debido a ello es que no hemos podido
hacer que te funcione. De todas formas gracias por permitirme
colaborarte, saludos,

Roger
Respuesta Responder a este mensaje
#15 Xuri
10/02/2007 - 22:03 | Informe spam
emm...

namespace facturacion {

clase mainform{ "desde donde llamo todo el tinglao que esta en el raiz de
facturacion.. donde ejecuto el codigo que intentamos hacer funcionar" }


clases.formulario ( "heredado de windows.forms.form esta dentro del
contenedor clases como ya especifico " )

formularios.clientes ( "heredado de clases.formulario y esta en el
contenedor formularios como ya especifico" ).

}

Me he explicado bien??

Un saludo.
"rogerrod61" wrote:

Hola, si puede funcionarte de esa forma, lo único es que cada vez que
incorpores un formulario deberás aumentarle un case.
Si deseas completarlo genéricamente, solo envíame un prototipo de como
tienes las clases, no te pido el proyecto solo un prototipo que
incluya solamente como tienes las clases, pues .net es tan extenso que
podría hacerse de muchas formas, debido a ello es que no hemos podido
hacer que te funcione. De todas formas gracias por permitirme
colaborarte, saludos,

Roger


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida