Davgav’s HomePage
Página personal de Davgav.
Cargando Cargando...
10/03/2009
08:20

0 comentarios

Categorías:

Llegando al límite

No se podría ser mejor programador:
El compilador JIT encontró una limitación interna

Error encontrado mientras programaba en Visual Basic .NET 2008:

Invalid Program Exception:
El compilador JIT encontró una limitación interna


PD: el primer WTF que publico...
07/10/2008
00:46

0 comentarios

Categorías:

Tutorial: Como crear un ComboBox personalizado en .NET

Combo Box Genérico

Hoy explicaremos el proceso de creación de un ComboBox personalizado.

Primero crearemos un control de usuario que herede de ComboBox. Después establecemos en el New el método de pintado del combo a DrawMode = DrawMode.OwnerDrawFixed.

Y por ultimo sobrescribimos el método OnDrawItem(ByVal e As System.Windows.Forms.DrawItemEventArgs), donde e indica la fila que se va a pintar, ofreciéndonos un objeto graphics que podemos usar directamente.

Nosotros hemos creado un ComboBox que pinta las filas de colores alternativamente, pero es posible crear cualquier tipo de rutina gráfica.

Os dejamos con el código:

14/07/2008
23:26

0 comentarios

Categorías:

Tutorial: Como encontrar la posicion de un control respecto a la pantalla en .Net

Para encontrar las coordenadas (location) de un control de usuario en Visual Net solo es necesario lo siguiente

Visual Basic .NET

Dim pntPunto As point = PointToScreen(New Point(0, 0))

Por ejemplo, para mostrar un fomulario en la misma posicion que un boton

Visual Basic .NET

Dim frmFormulario As New Form

frmFormulario.Location = PointToScreen(btnBoton.Location)

frmFormulario.ShowDialog()


21/06/2008
14:34

0 comentarios

Categorías:

Tutorial: Como conseguir el tamaño de la Cabecera y los Bordes en .Net

Para conseguir la altura de la cabecera y de los bordes del formulario desde .NET solo necesitamos las siguientes lineas:

C#

int BorderWidth = (this.Width - this.ClientSize.Width) / 2;

int TitlebarHeight = this.Height - this.ClientSize.Height - 2 * BorderWidth;



Visual Basic .NET

Dim BorderWidth As Integer = (Me.Width - Me.ClientSize.Width) / 2

Dim TitlebarHeight As Integer = Me.Height - Me.ClientSize.Height - 2 * BorderWidth



Espero que os sirva de ayuda.
10/05/2008
15:04

0 comentarios

Categorías:

Tutorial: Unir Documentos En Word Desde Visual Basic.Net 2005

Seguimos con los tutoriales de Visual Basic.Net 2005. Esta vez os traigo un código que os permitirá unir documentos de Word.

Visual Basic .NET

 

        'Definimos la ruta del archivo WORD a abrir

        Dim rutaArchivo As String = "c:/documento1.doc"

        'Definimos la ruta del archivo WORD a abrir

        Dim rutaArchivo2 As String = "c:/documento2.doc"

 

        'Creamos un objeto de aplicacion WORD

        Dim Documento As New Object

        Documento = CreateObject("Word.application")

 

        With (Documento)

 

            'Abrimos el Documento

            .Application.Documents.Open(rutaArchivo)

 

            'Comprobamos si el archivo existe

            If IO.File.Exists(rutaArchivo2) Then

 

                'Nos movemos al final del documento

                'WdUnits.wdStory = 6

                .Application.Selection.EndKey(6)

                'Insertamos una nueva página

                .Application.Selection.InsertNewPage()

                ' Anexamos el documento

                .Application.Selection.InsertFile(rutaArchivo2)

            Else

 

                MsgBox("No se ha encontrado el documento " & _

                rutaArchivo2, MsgBoxStyle.Exclamation, "Error")

            End If

 

            'Guardamos los cambios

            .Application.Documents.Save(True)

 

            'Cerramos el archivo

            .Application.Documents.Close()

            'Cerramos el Word

            .Application.Quit()

 

        End With

 

        'Liberamos la memoria destinada al WORD

        Documento = Nothing



Si el segundo documento es un archivo de Word sera insertado respetando el formato, sino se copiara el contenido, por lo que si no es un documento de texto aparecerán caracteres extraños.