lunes, 22 de abril de 2013

Uso de plantillas dinámicas de Blogger en un blog con código de programación

Pregunta:

¿Es recomendable o por lo menos interesante usar la plantillas dinámicas de Blogger en un blog que incluya código?

Respuesta:

Yo personalmente no me arriesgaría, mi experiencia no ha sido buena.
El principal problema aparece con la inclusión del código  SyntaxHighlighter que hace mucho mas legible el código fuente.
Estuve pegándome durante casi una año, cada cierto tiempo creía que lo conseguía. Incluso publique una entrada sobre como usar SyntaxHighliter con plantillas dinámicas.Pero cada cierto tiempo descubría que el código había perdido su formato.

Al final me harté y volví  a las plantillas estáticas.
Y entonces descubrí el sentido inverso del aviso que me advirtió sobre un incremento en las estadísticas de visitas provocado por el uso de plantillas dinámicas era cierto a la inversa.
Tuve que quitar el gráfico de visitas porque parecía que todo el mundo me había abandonado. No escribo esto para presumir, pero me molestaba cada vez que lo veía.

Además me parece que con las plantillas se puede jugar mas como programador (si tienes tiempo).

Incialización del valor en combox y listbox de windows forms mediante ValueMember

Problema

En un desarrollo Windows forms rellenas una combo o una listBox desde una consulta linq y estableces el ValueMember en un campo.

lista.ValueMember="id"
lista.addRange(Bd.mitabla.toArray())

Posteriormente quieres incializar seleccionando un elemento de lista que tiene un valor concreto:
lista.selectedValue=20

¡Y resulta que no funciona.!

Solución:

Usar:
  • Datasource en lugar de addRange
  • ToList en lugar de toArray.
lista.ValueMember="id"
lista.DataSource(Bd.mitabla.toList())

¡Y esto si que funciona!: lista.selectedValue=20

Comentario

Reconozco haber perdido mucho tiempo hasta haber descubierto esto. En mi descargo debo decir que en 1998 dejé de programa en Visual Basic 2012 y solo hace unos tres años que he vuelto a desarrollar en Windows Forms y muy esporadicamente.
Este es una de los tips que escribo prácticamente para mí, porque siempre se me olvida

viernes, 5 de abril de 2013

Menú contextual y grid view de windows forms

Enunciado

Imagina un gridview con varias filas. Haces click con el botón derecho y se despliega un menú contextual con opciones editar, borrar,...etc.
Quieres que si eliges editar se abra una ventana para editar la fila sobre la que estas pinchando.
El problema es que las propiedades currentRow y SelectedRows no corresponden a la fila que pinchas.

Solución

Hay que interceptar el evento mousedown para cambiar la selección a la fila debajo del pincho del ratón.

    Private Sub gvContactos_clickContexto(sender As Object, e As MouseEventArgs) Handles gvContactos.MouseDown

        Dim hti = gvContactos.HitTest(e.X, e.Y)
        If (hti.Type = DataGridViewHitTestType.Cell) Or (hti.Type = DataGridViewHitTestType.RowHeader) Then
            gvContactos.ClearSelection()
            gvContactos.Rows(hti.RowIndex).Selected = True
        End If

    End Sub

    Private Sub gvContactos_EditarActiv(sender As Object, e As System.EventArgs) Handles gvContactos.DoubleClick,
                                                                                        btnEditaActivContacto.Click,
                                                                                         btnCtxEditActivCto.Click
        If gvContactos.SelectedRows.Count = 1 Then editaActivContacto(CType(gvContactos.SelectedRows(0).DataBoundItem, tblFbContacto))
    End Sub

    Private Sub gvcontactoEdita_Click(sender As Object, e As System.EventArgs) Handles btnEditaContacto.Click,
                                                                                    btnCtxEditarContacto.Click
        If gvContactos.SelectedRows.Count = 1 Then
            editaContacto(CType(gvContactos.SelectedRows(0).DataBoundItem, tblFbContacto))
        End If
    End Sub
Algunos ejemplos que he visto comprueban si se ha pulsado el botón derecho o el izquierdo en el argumento del evento mousedown. En mi caso no lo hago porque en cualquier caso quiero reducir la selección a una fila.

martes, 2 de abril de 2013

Entrar en Windows Server 2012 con la cuenta de dominio

Enunciado

Instalas Windows 2012 en una maquina virtual vmWare.
Cuando terminas la instalación, haces login con la cuenta del administrador de maquina creada durante la instalación.
Procedes a añadir el equipo al dominio y reinicias.
No encuentras la forma de hacer login con una cuenta de dominio en lugar de la del administrador.

Solución

Supongo que realmente lo que quieres es autorizar una cuenta de dominio para el acceso con el escritorio remoto.
Puedes hacerlo con la cuenta de administrador del equipo y escribiendo el nombre del usuario de dominio de la forma habitual \
Podrás hacer login y además a partir de entonces tendrás opción a elegir el nombre del usuario.

Comentario

Es posible que haya otras formas ¿dar de alta el usuario de dominio en usuarios?.  Pero con esto me funcionó y después de haber perdido una hora con la maravillosa METRO-usabilidad.....no estoy para despilfarros.