Mlc Grid

Empecé con Vb 2005 (me resistía a dejar vb 6.0), pero está claro que Vb 6 antes o después desaparecerá y si no empezamos a utilizar VB.net 2008, 2010 etc, podría seguir los mismos pasos.

en séptimo lugar y bajando, pero es que Visual Basic.net entiendo que debe ser en todas sus versiones, está en el número 25, así que en parte depende de nosotros que no desaparezca.

No me enrollo más y empiezo.
La cosa empezó porque no me gustaba la forma de trabajar con DataGridView, para mis programas de datos necesitaba algo que fuera más cómodo de utilizar, así que decidí practicar haciendo un componente parecido.
No digo que sea mejor que DataGridView, de hecho no lo es, pero sí que se ajusta a mis necesidades y tiene la ventaja de que cada vez que no me gusta algo o me falta algo simplemente lo añado, cosa que lógicamente no puedo hacer con DataGridView.

Herramienta : Visual Basic 2008 ( Código Fuente incluido al final de la página )

Vista del componente :


Que permite :

    *    Mostrar el contenido de un DataTable.



    *    Guardar el contenido en un archivo compatible con Excel.

    *    Guardar en un archivo .mlc, todas las características del grid (datos + propiedades de celda), 
          el cual se puede abrir desde cualquier control MlcGrid o desde la vista previa.

    *    Copiar celdas de excel y pegar directamente en el grid y viceversa.

    *    Editar y formatear las Celdas.


    *    Filtros de parte o todo el texto de la celda.

    *    Vista previa para imprimir, muestra las páginas horizontales y verticales.

    *    Menús contextuales para celda, columna, fila y general.

    *    etc, etc...

Características : 

La primera fila y primera columna es la 1, no la 0, aspecto que para mi es muy interesante
y cómodo a la hora de trabajar.

De la misma manera total filas Rows y total columnas Cols son eso y no Rows - 1
          
Imagen en todas las celdas de la columna 1.

          For i As Integer = 1 To MlcGrid1.Rows
         MlcGrid1.CellImage(i, 1) = My.Resources.Imagen
     Next i

Trabajar con celdas es muy fácil :

        CellImage(fila,columna) = imagen
    CellFormat, CellAlignment, CellFont, CellFontBold , etc...

Lo mismo para las Columnas :

        Colwidth(columna), ColTitulo, ColReadOnly, ColPassword, ColType, etc

Vamos con algunas imágenes :

Formateo de celdas y columnas.


Desarrollo Columnas :

Columna 1

    MlcGrid1.ColWidth(1) = 215
    MlcGrid1.ColAlignment(1) = MlcGridClass.MlcGrid.TipoColumnaAlineacion.Left
    MlcGrid1.ColTitulo(1) = "Izquierda"

Columna 2

    MlcGrid1.ColAlignment(2) = MlcGridClass.MlcGrid.TipoColumnaAlineacion.Right
    MlcGrid1.ColType(2) = GetType(Double)
    MlcGrid1.ColSimbolo(2) = "$"
    MlcGrid1.ColFormat(2) = "#,##0.#0"
    MlcGrid1.ColTitulo(2) = "Derecha"

Columna 3

    MlcGrid1.ColAlignment(3) = MlcGridClass.MlcGrid.TipoColumnaAlineacion.Center
    MlcGrid1.ColType(3) = GetType(Date)
    MlcGrid1.ColTitulo(3) = "Centro"

Desarrollo Celdas :

Columna 1
           
    MlcGrid1.CellNote(1,1) = "Nota de prueba"


La nota se muestra al mover el ratón al triángulo rojo, situado en la esquina superior derecha
de la Celda, si la propiedad ShowToolTip es true, si es false se muestra haciendo click.

    MlcGrid1.CellBackColor(2, 1) = Color.FromArgb(0, 128, 255)
    MlcGrid1.CellForeColor(2, 1) = Color.White

    MlcGrid1.CellChecked(3, 1) = MlcGridClass.MlcGrid.TipoCheck.Unchecked
    MlcGrid1.CellImage(3, 1) = My.Resources.Imagen

    MlcGrid1.CellAlignment(4, 1) = _
    MlcGridClass.MlcGrid.TipoCellAlineacion.CenterCenter
    MlcGrid1.CellFontName(4, 1) = "Alba Super"
    MlcGrid1.CellFontSize(4, 1) = 12
    MlcGrid1.CellFontBold(4, 1) = False

Como añadir un listado a una celda : en este caso a la (4, 1)

    MlcGrid1.CellListAdd(4, 1, "100")
    MlcGrid1.CellListAdd(4, 1, "101")
    ...    
    ...
como mostrarlo :
     - por código :  MlcGrid1.CellListShow()
    - en tiempo de ejecución : Ctrl + L, tecla + o Click en la esquina inferior derecha.
          
y como seleccionarlo :
Flecha arriba - abajo  y tecla  Intro.
Esto dispara el evento,  MlcGrid1.MlcCellListItemSelected

    Private Sub MlcGrid1_MlcCellListItemSelected(ByVal sender As ObjectByVal Fila As   IntegerByVal Columna As IntegerByVal Item As StringByVal LIndex As IntegerHandles       MlcGrid1.MlcCellListItemSelected
         'si hubieramos seleccionado el item 100, la celda mostraría el número 1
        MlcGrid1.CellTextMatrix(Fila, Columna) = Mid(Item, 1, 1)
    End Sub

    MlcGrid1.CellAlignment(5, 1) = _
    MlcGridClass.MlcGrid.TipoCellAlineacion.CenterCenter
    MlcGrid1.CellFontBold(5, 1) = True

    MlcGrid1.CellChart(6, 1) = 75
    MlcGrid1.CellChartInfo(6, 1) = "Prueba"

    MlcGrid1.CellChart(7, 1) = -60
    MlcGrid1.CellChartInfo(7, 1) = "Prueba"

Si seleccionamos las filas 6 y 7, podemos hacer : 

    MlcGrid1.SelectedCellsChartInfo("Prueba")

    MlcGrid1.CellChecked(8, 1) = MlcGridClass.MlcGrid.TipoCheck.Checked
       
    MlcGrid1.CellAlignment(9, 1) = _
    MlcGridClass.MlcGrid.TipoCellAlineacion.CenterRight
    MlcGrid1.CellSymbol(9, 1) = "%"
           
    MlcGrid1.CellBarcode(10, 1) = True    
    MlcGrid1.CellBarcode(11, 1) = True

Columna 3

    MlcGrid1.CellTextMatrix(1, 3) = "11/2/11"

    MlcGrid1.CellTextMatrix(2, 3) = "10:22"
    MlcGrid1.CellFormat(2, 3) = "HH:mm"

    MlcGrid1.CellTextMatrix(3, 3) = "23:20"

Como mostrar DateTimePicker de una Celda : en este caso la (3, 3)


Ctrl + F o Tecla + 

Podemos formatear DateTimePicker, antes de mostrarlo, con la propiedad     
DateTimePickerFormat. En este caso se ha utilizado :

    MlcGrid1.DateTimePickerFormat = _
    MlcGridClass.MlcGrid.TipoDateTimePickerFormat.Largo





Archivo MlcGridNet.zip (203 Kb)