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

Controles de Usuario

Estas en el tema de Controles de Usuario en el foro de .NET en Foros del Web. Que tal colegas, tengo la idea de hacer lo siguiente, tengo un proyecto en visual studio 2010 para Windows Form y quiero crear varios controles ...
  #1 (permalink)  
Antiguo 27/06/2011, 07:48
Avatar de mvazquez  
Fecha de Ingreso: octubre-2004
Ubicación: Monterrey - México
Mensajes: 875
Antigüedad: 20 años
Puntos: 8
Pregunta Controles de Usuario

Que tal colegas, tengo la idea de hacer lo siguiente, tengo un proyecto en visual studio 2010 para Windows Form y quiero crear varios controles de usuario que se carguen a un formulario en base a lo que yo seleccione en un combo que tengo en mi formulario.

No se si eso sea posible, no quiero hacer una dll para cada control de usuario mas bien crearlo en mi mismo proyecto y usarlos conforme a lo que necesite.

Se podrá hacer eso?
Cómo?
__________________
http://vazquezvega.wordpress.com/
"La paciencia nos da el privilegio de compartir el refrescante fruto de Dios con los demás."
  #2 (permalink)  
Antiguo 27/06/2011, 10:30
Avatar de mvazquez  
Fecha de Ingreso: octubre-2004
Ubicación: Monterrey - México
Mensajes: 875
Antigüedad: 20 años
Puntos: 8
Respuesta: Controles de Usuario

Colegas, ya logre solucionar lo que les comento.
pero tengo un detalle, Yo tengo mis controles de usuario donde tengo este código para control de instanciamiento:

Código:
public static cuControl0Instance()
{
    if (((frmInstance == null) || (frmInstance.IsDisposed == true)))
    {
        frmInstance = new cuControl0();
    }
    frmInstance.BringToFront();
    return frmInstance;
}
Cuando abro mi pantalla principal desde donde se invocaran los controles hago esto:
Código:
cuControl0 _Control0 = null;
cuControl1 _Control1 = null;
cuControl2 _Control2 = null;
Luego lo pongo el control que quiero usar dentro de un panel:
]Primero verifico si ya esta instanciado y si aun no lo esta pues pinto el control.
Código:
private void btnGeneral_Click(object sender, EventArgs e)
{
            _Control = cuControl.Instance();            
            this.pnlControls.Controls.Add(_Control);  
}
Y hasta ahí todo bien, el detalle es que al hacer esto:
Código:
cuControl0 _Control0 = null;
cuControl1 _Control1 = null;
cuControl2 _Control2 = null;
Estoy instanciando todos los controles y quizas solo valla a ocupar uno.

La pregunta.
Como instanciar un control, formulario o lo que sea pero en el momento en que se valla a utilizar?

Espero haberme dado a entender...
__________________
http://vazquezvega.wordpress.com/
"La paciencia nos da el privilegio de compartir el refrescante fruto de Dios con los demás."
  #3 (permalink)  
Antiguo 27/06/2011, 10:42
Avatar de ldcd  
Fecha de Ingreso: enero-2010
Ubicación: Distrito Federal
Mensajes: 57
Antigüedad: 14 años, 10 meses
Puntos: 6
Respuesta: Controles de Usuario

bueno, pues ahi lo que estas haciendo es declararlos, y por lo que veo, solo puedes tener 3 botones, q va a pasar si necesitas mas ???

Necesitarias declarar tantos botones como sea posible crear, y siempre tendrias un numero finito de botones o controles.

Para evitar eso y crear los botones en el momento de que se utilicen, tendrias q crearlos justo cuando cambie de index el comboBox, el problema es que todos los botones tendrian el mismo evento.

De cualquier forma, asi como lo tienes, no los haz instanciado, solo estan declarados. Se instancian hasta que escribes la siguiente linea:

_Control = cuControl.Instance();


Saludos
  #4 (permalink)  
Antiguo 27/06/2011, 10:58
Avatar de mvazquez  
Fecha de Ingreso: octubre-2004
Ubicación: Monterrey - México
Mensajes: 875
Antigüedad: 20 años
Puntos: 8
Respuesta: Controles de Usuario

Gracias ldcd
En realidad esos botones son de prueba, lo que habrá es un combo que se llenara desde una tabla.

Entonces al hacer esto:
Código:
cuControl _Control = null;
No estoy instanciando? mmmm tengo mis dudas porque debugueando al entrar a esa linea va al constructor del control de usuario.

y al hacer esto.
Código:
_Control = cuControl.Instance();
vuelve a ir a la control pero como este ya esta instanciado pues ya no entra al constructor.

Pero bueno así empezare a trabajar, si sale algo mejor mas delante pues hago los cambios.
__________________
http://vazquezvega.wordpress.com/
"La paciencia nos da el privilegio de compartir el refrescante fruto de Dios con los demás."
  #5 (permalink)  
Antiguo 27/06/2011, 12:50
Avatar de ldcd  
Fecha de Ingreso: enero-2010
Ubicación: Distrito Federal
Mensajes: 57
Antigüedad: 14 años, 10 meses
Puntos: 6
Respuesta: Controles de Usuario

Pues por lo que dices vas a tener una longitud variable de datos dependiendo de lo que tengas en la Base, por lo cual te recomiendo lo siguiente:

Código:
for(int i=0;i<comboBox.Items.Count;i++)
{
    cuControl _Control = null;
    _Control = cuControl.Instance();            
    this.pnlControls.Controls.Add(_Control);
}
con esto vas a crear un control por cada elemento en tu Combo. y ademas no necesitaras crearlos ni instanciarlos antes de utilizarlos.

Espero te sirva
  #6 (permalink)  
Antiguo 27/06/2011, 13:21
Avatar de mvazquez  
Fecha de Ingreso: octubre-2004
Ubicación: Monterrey - México
Mensajes: 875
Antigüedad: 20 años
Puntos: 8
Respuesta: Controles de Usuario

Gracias ldcd.
__________________
http://vazquezvega.wordpress.com/
"La paciencia nos da el privilegio de compartir el refrescante fruto de Dios con los demás."

Etiquetas: controles, usuarios
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 12:32.