Visual Basic.NET - Tener un PictureBox con capacidad de Binding

 
Vista:

Tener un PictureBox con capacidad de Binding

Publicado por Pablo Acuña (31 intervenciones) el 13/12/2006 14:52:49
Hola a todos.
Tengo un form en el que tengo un picturebox que quiero que muestre las imagenes de mi base de datos una a una. Es decir, el form tiene botones de navegacion y me va mostrando los campos de los registros uno a uno y con capacidad de modificar y guardar. Todos los controles se enlazan usando la propiedad Databindings pero tengo problemas con el picturebox.

Lei por ahi que debo escribir los eventos format y parse, que son los que se disparan cuando el registro actual cambia y se encargan de procesar los datos que se muestran en el control y los datos que se guardan en la Base de datos.

Alguien tiene idea de como hacer esto? Logre hacer el Format modificando codigo que encontre por internet y es un PictureBoxBinding que hereda de Picturebox que tenia escrito el format solamente. Solo sirve para visualizar. No tengo el parse event y esta parte es necesaria para traducir la imagen a un formato correcto en la Base de datos. Mi campo imagen es un BLOB, uso MySQL. Pongo la parte que es necesario saber nada mas. A alguien le serà util seguro. El problema que surge es que cuando recorro en mi form los registros. Alguna idea de como hacer una PictureBoxBinding completo? que permita aparte de mostrar, tambien modificar y guardar la imagen mostrada a la base de datos? todo usando solo bindings?

Public Sub binding_format(ByVal sender As Object, ByVal e As ConvertEventArgs)
Dim bts() As Byte

If Not e.DesiredType Is GetType(Image) Then
Exit Sub
End If

bts = CType(e.Value, Byte())
Dim stmBLOBData As New System.IO.MemoryStream(bts)
e.Value = Image.FromStream(stmBLOBData)

End Sub

Protected Sub inicializarImangenNula()
Me.imgNull = New Bitmap(Me.Size.Width, Me.Size.Height)
Dim g As Graphics = Graphics.FromImage(Me.imgNull)
Dim b2 As New SolidBrush(color.gray)
g.FillRectangle(b2, 0, 0, Me.Size.Width, Me.Size.Height)
g.Save()
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder