Este documento describe cómo colorear elementos de un combo en Visual Basic .NET usando el evento DrawItem y cómo almacenar una imagen procedente de una base de datos MySQL en el disco duro. Explica cómo pintar rectángulos de colores diferentes para cada elemento del combo y cómo crear una miniatura de imagen almacenada como BLOB en la base de datos y guardarla como archivo JPG.
Cu00322 a codigo ejemplo visual basic forms labels textbox command buttons
Tarea codigos de visual basic net
1. NOMBRE: LINA PAOLA PULIDO NIÑO
CODIGO:6092249
MATERIA: PROGRAMACION
TEMA: CODIGOSEN VISUALBASICNET
COLOREAR LOS ELEMENTOS DE UN COMBO EN VISUAL BASIC NET
Con el siguiente código vamos a poder colorear el fondo de los elementos de un combo.
Supongamos que tenemos un combo llamado cboColor con 9 elementos sin texto.
Simplemente queremos tener cada elemento coloreado de un color determinado.
Implementaremos el evento DrawItem del combo de la siguiente manera:
Private Sub cboColor_DrawItem(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.DrawItemEventArgs) Handles cmbColor.DrawItem
Select Case e.Index
Case 0
'Blanco
e.Graphics.FillRectangle(Brushes.White, e.Bounds.X, e.Bounds.Y, e.Bounds.Width,
e.Bounds.Height)
Case 1
'azul
e.Graphics.FillRectangle(Brushes.LightCyan, e.Bounds.X, e.Bounds.Y, e.Bounds.Width,
e.Bounds.Height)
Case 2
'amarillo
e.Graphics.FillRectangle(Brushes.Yellow, e.Bounds.X, e.Bounds.Y, e.Bounds.Width,
e.Bounds.Height)
Case 3
'rosa
e.Graphics.FillRectangle(Brushes.LightPink, e.Bounds.X, e.Bounds.Y, e.Bounds.Width,
e.Bounds.Height)
Case 4
'gris
e.Graphics.FillRectangle(Brushes.LightGray, e.Bounds.X, e.Bounds.Y, e.Bounds.Width,
e.Bounds.Height)
Case 5
'naranja
e.Graphics.FillRectangle(Brushes.Orange, e.Bounds.X, e.Bounds.Y, e.Bounds.Width,
e.Bounds.Height)
Case 6
'verde claro
2. e.Graphics.FillRectangle(Brushes.LightGreen, e.Bounds.X, e.Bounds.Y, e.Bounds.Width,
e.Bounds.Height)
Case 7
'salmón
e.Graphics.FillRectangle(Brushes.Salmon, e.Bounds.X, e.Bounds.Y, e.Bounds.Width,
e.Bounds.Height)
Case 8
'rojo
e.Graphics.FillRectangle(Brushes.Red, e.Bounds.X, e.Bounds.Y, e.Bounds.Width,
e.Bounds.Height)
End Select
End Sub
La idea es pintar un rectángulo opaco del color determinado, y que esté localizado en la
posición exacta del elemento del cómbo. La posición y las dimensiones del ítem las
obtenemos mediante e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height
ALAMACENAR UNA IMAGEN EN DISCO PROCEDENTE DE UNA BASE DE DATOS EN VISUAL
BASIC NET
Código que nos permite almacenar una imagen ubicada en un campo BLOB de una base
de datos MySql en un fichero .jpg. Ideal para mantener un caché en disco de las imágenes
más utilizadas
Suponemos que tenemos rellenado el dataset_imagen con la información relativa a la
imagen.
Dim imagen, miniatura As Image
Dim datosBlob() As Byte
datosBlob =
CType(dataset_imagen.Tables(0).Rows(e.Item.ItemIndex)("campo_blob_que_contiene_la
_imagen"), Byte())
Dim imagenmemoria As MemoryStream
imagenmemoria = New MemoryStream(datosBlob)
imagen = Image.FromStream(imagenmemoria)
Dim nuevoAlto As Integer
Dim nuevoAncho As Integer
If imagen.Height > imagen.Width Then
nuevoAlto = 80
nuevoAncho = (imagen.Width * 80) / imagen.Height
Else
nuevoAncho = 80
nuevoAlto = (imagen.Height * 80) / imagen.Width
3. End If
miniatura = New Bitmap(nuevoAncho, nuevoAlto, imagen.PixelFormat)
Dim grafico As Graphics = Graphics.FromImage(miniatura)
grafico.CompositingQuality = Drawing2D.CompositingQuality.HighQuality
grafico.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
Dim rectangulo As Rectangle
rectangulo = New Rectangle(0, 0, nuevoAncho, nuevoAlto)
grafico.DrawImage(imagen, rectangulo)
miniatura.Save(path_en_disco, Imaging.ImageFormat.Jpeg)