Archivo por meses: mayo 2011

Domitienda.com ofrece hosting con bases de SQL Server 2008 sin coste adicional

Pues eso… ya sabes que www.Domitienda.com colabora «activamente» con el mantenimiento de mis sitios y de este blog y cuando digo «colabora» me refiero a que colabora económicamente, así que… aquí estoy yo poniéndole un poco de publicidad para que sepas que además de ofrecer alojamiento (o hosting) de todo tipo y a un precio que con la calidad de servicio que dan es difícil de que encuentres algo mejor, pues eso, que no sólo alojamiento de ASP.NET 4.0 (incluso de versiones anteriores) o alojamiento para ASP y PHP y bases de MySQL o Access o de SQL Server 2005 (si ya empiezas a usar el alojamiento básico), ahora también puedes crear bases de datos de SQL Server 2008 y sin coste adicional, por supuesto las bases de datos de SQL Server (sea de la versión que sea) puedes usarlas si contratas el alojamiento Básico que sólo cuesta 59,40 euros al año (4,95 euros al mes) más impuestos,

Así que… ya sabes… entérate de qué tienes que hacer para usar las bases de datos de SQL Server 2008 en los alojamientos de www.Domitienda.com y empieza a sacarle más rendimiento a tu alojamiento.
En ese post del blog de Domitienda te explican cómo usar/configurar las bases de datos desde tu equipo usando el SQL Server Management Studio 2008 Express.

Nos vemos.
Guillermo

Domingo 22, te toca a ti

Pues eso… que en España hoy es el día en el que se vota para elegir a los que nos representarán (se supone que debe ser así) en nuestros municipios, es decir es día de elecciones municipales, y aunque hace un día de playa (pa los que tengamos una playa cerca, claro) o de campo (pa los que tengamos el campo cerca, quién dice campo, dice montaña), hay que ir a votar o al menos eso es lo que deberías hacer salvo que tú pienses lo contrario… vamos que no voy a ser yo el que te diga qué tienes que hacer tú. Yo ya he ido, y he votado. Temprano (a eso de las 9.30), lo sé, pero es que anoche me acosté después de las 2.20 y aunque mi intención era despertarme a las 9.45 para ir a votar y después pasarme por el bar de Encarni para desayunar y seguir con el día, pues… resulta que antes de las 8 ya estaba "espabilao" y claro, como no había forma de conciliar (nuevamente) el sueño y tampoco era plan de tomarse otra pastilla pa dormir (no fuera que esta hiciera más efecto que la que me tomé anoche y ya no me despertara hasta la hora de ver a Alonso no ganar nuevamente con el Ferrari), pues… me levanté y me fui a votar. Y ahora te lo estoy contando cuando son las 10.16 y como que va siendo hora de que lo deje ya porque si quiero ir a la Plaza Cantarero a desayunar y debo estar antes de las 11, pues… con lo que me enrollo no sé yo si llegaría… ¡que sí! ¡que ya me voy! ¡Hasta luego! (que después seguro que te cuento más cosas)

 

Nos vemos.
Guillermo
P.S.
Por si te intriga de qué va todo eso del voto en blanco, la abstención y el voto nulo, échale un vistazo a esto (o haz una búsqueda en tu buscador favorito) y verás que no hay una fórmula mágica:
http://es.wikipedia.org/wiki/Voto_en_blanco
Diferencias entre el Voto en Blanco y la Abstención
Abstención, voto en blanco y voto nulo: ¿A quién beneficia?
Abstención activa

Reutilizar un control en otros controles

Pues eso… aquí te voy a explicar cómo usar un mismo control en más de un "contenedor" (o colección de controles), y como comprobarás, en principio, es algo muy simple de hacer (una vez que se sabe cómo hacerlo, claro, que si no… ¡ja! ya me dirás tú cómo lo harías si nadie lo explicara, pues eso…)

 

Sí, es un tema técnico… 😉 pero eso no quiere decir que no lo empiece cómo "debe ser".

 

A lo que vamos, de lo que se trata es de tener, por ejemplo, un control PictureBox y ese mismo control mostrarlo (o usarlo) en controles diferentes.
En realidad en contenedores de controles o colecciones de controles, que para el caso es lo mismo, además de que en .NET todos los controles pueden tener otros controles dentro (al menos eso es lo que parece o hace suponer al existir en cada objeto de tipo Control una propiedad llamada Controls que es un objeto del tipo ControlCollection (para saber más pulsa en los enlaces y te llevará a la documentación de .NET Framework 4.0).

Para lograr eso lo que tenemos que hacer es añadir el control en cuestión a la colección Controls del contenedor al que lo queremos mover.
Por ejemplo, si tenemos un control del tipo TabControl y cuando pulsamos en la primera y/o la segunda ficha (TabPage), haremos que un control llamado PictureBox1 se añada a esa ficha.
Con el siguiente código (para Visual Basic) lo conseguiremos:

 

Private Sub TabControl1_SelectedIndexChanged(ByVal sender As Object, _
                                             ByVal e As EventArgs) _
                                            Handles TabControl1.SelectedIndexChanged

    Select Case TabControl1.SelectedIndex
        Case 0
            TabPage1.Controls.Add(PictureBox1)
        Case 1
            TabPage2.Controls.Add(PictureBox1)
    End Select
End Sub

 

Si prefieres usar C#, utiliza el siguiente código:

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
    switch (tabControl1.SelectedIndex)
    {
        case 0:
            tabPage1.Controls.Add(pictureBox1);
            break;

        case 1:
            tabPage2.Controls.Add(pictureBox1);
            break;
    }
}

 

Si en lugar de añadirlo directamente a una ficha (tabControl) necesitas que esté en otro contenedor, por ejemplo, dentro de un GroupBox, simplemente sustituye el nombre del control que hay justamente antes de Controls.Add por el control que te convenga. Lo mismo ocurre con el control añadido (el que está entre paréntesis después de .Add), puedes añadir cualquier control.

 

Si al ver el código de ejemplo te preguntas algo así:

P: Guille, ¿no crees que sería necesario quitar el control antes de añadirlo a otra colección? ya que de esa forma tendríamos repetido el mismo control en más de una colección.

La respuesta podría ser como esta:

R: Buena pregunta, lo que indica que "has leído el código", pero no es necesario.

 

¿Por qué no es necesario eliminar un control de una colección antes de añadirla a otra?

Porque el propio .NET se encarga de eso, es decir, si un control se añade a una colección de controles, automáticamente se quita de la que ya estuviera.

Esto no es que lo haya "adivinado" yo, es que está en la documentación del método Add, que por cierto yo no lo había leído hasta después de hacer el proyecto de ejemplo, en el que me dio por probar a ver qué pasaba si no eliminaba previamente el control de la colección, y al ver que no ocurría "nada raro" (es decir, todo funcionaba como debería funcionar) me dio por leer la documentación y esa documentación tiene una nota que dice:

 

Un objeto Control sólo se puede asignar a una colección Control.ControlCollection a la vez. Si el Control ya es secundario de otro control, se quita de ese control antes de agregarlo a otro.

(el texto anterior está extraído de la ayuda en línea de .NET Framework 4.0 en castellano, concretamente de la definición del método Add de la clase Control.ControlCollection)

 

 

Espero que te sea de utilidad.

 

Nos vemos.

Guillermo

Publicado con fecha del lunes 16 de mayo a las 22:00, pero en realidad lo acabé de escribir (y publicar) el martes 17 de mayo a las 00:05