seleccionar una fila en un datagrid y mostrarlo en Textbox y PictureBox!
-
martes, 30 de diciembre de 2008 5:55
Bien, digamos que la primer parte la tengo casi resuelta! selecciono y puedo mostrar los datos en los textbox.
El problema o mejor dicho no se que como tratarlo es a la hora de pasar la imagen de la columna al picturebox...
Es aqui donde no se como hacerlo... ademas como puedo especificar o en que parte del codigo deberia de escribir el alto y ancho de una columna.... ya que como el DataGridView es pequeño trae todo muy a montonado....La primer parte al hacer un click en el boton, carga un DataGridView y ejecuta una ProgressBar....
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
En la segunda parte es donde paso los campos leidos a los TextBox, pero ahi viene la duda como hago para pasar la imagen al PictureBox ?????????ProgressBar1.Visible =
TruecalculaNumeroRegistros()
ProgressBar1.Visible =
True Dim conn As New SqlConnection("Data Source=............") Dim cmd1 As New SqlCommand("select count(*) as RowNumber from Tabla", conn)conn.Open()
Dim da1 As SqlDataReader = cmd1.ExecuteReader()da1.Read()
Dim RowNumber As Integer = CInt(da1(0))da1.Close()
Me.ProgressBar1.Minimum = 0 Me.ProgressBar1.Maximum = RowNumber Dim cmd As New SqlCommand("SELECT columna1 ..... columna16,foto from tabla order by id asc", conn) Dim da As SqlDataReader = cmd.ExecuteReader() Dim dt As New DataTable()ds =
New DataSet()dt.Columns.Add(
"columna1", GetType(String)) .... <--- Aca como puedo especificar un ancho y alto fijo para la columna ?dt.Columns.Add(
"columna2", GetType(String))dt.Columns.Add(
"columna3", GetType(String))dt.Columns.Add(
"columna4", GetType(String))dt.Columns.Add(
"columna5", GetType(String))dt.Columns.Add(
"columna6", GetType(String))dt.Columns.Add("columna7
", GetType(String))dt.Columns.Add(
"columna8", GetType(String))dt.Columns.Add("columna9
", GetType(String))dt.Columns.Add(
"columna10", GetType(String))dt.Columns.Add(
"columna11", GetType(String))dt.Columns.Add(
"columna12", GetType(String))dt.Columns.Add(
"columna13", GetType(String))dt.Columns.Add(
"columna14", GetType(String))dt.Columns.Add(
"columna15", GetType(String))dt.Columns.Add(
"columna16", GetType(String))dt.Columns.Add(
"Foto", GetType(Byte())) Me.ProgressBar1.Value = 0 While da.Read() Dim tempRow As DataRow = dt.NewRow()tempRow(0) = da(0)
tempRow(1) = da(1)
tempRow(2) = da(2)
tempRow(3) = da(3)
tempRow(4) = da(4)
tempRow(5) = da(5)
tempRow(6) = da(6)
tempRow(7) = da(7)
tempRow(8) = da(8)
tempRow(9) = da(9)
tempRow(10) = da(10)
tempRow(11) = da(11)
tempRow(12) = da(12)
tempRow(13) = da(13)
tempRow(14) = da(14)
tempRow(15) = da(15)
tempRow(16) = da(16)
dt.Rows.Add(tempRow)
Me.ProgressBar1.Value += 1 End Whileds.Tables.Add()
Me.dgv.DataSource = dtProgressBar1.Visible =
False End Sub
Private Sub dgv_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv.CellContentClick
-------------> Segunda Parte :columna1TextBox.Text = Convert.ToString(
Me.dgv.CurrentRow.Cells(0).Value)columna2TextBox.Text = Convert.ToString(
Me.dgv.CurrentRow.Cells(1).Value)columna3TextBox.Text = Convert.ToString(
Me.dgv.CurrentRow.Cells(2).Value)columna4TextBox.Text = Convert.ToString(
Me.dgv.CurrentRow.Cells(3).Value)columna5TextBox.Text = Convert.ToString(
Me.dgv.CurrentRow.Cells(4).Value)columna6TextBox.Text = Convert.ToString(
Me.dgv.CurrentRow.Cells(5).Value)columna7TextBox.Text = Convert.ToString(
Me.dgv.CurrentRow.Cells(6).Value)columna8TextBox.Text = Convert.ToString(
Me.dgv.CurrentRow.Cells(7).Value)columna9TextBox.Text = Convert.ToString(
Me.dgv.CurrentRow.Cells(8).Value)columna10TextBox.Text = Convert.ToString(
Me.dgv.CurrentRow.Cells(9).Value)columna11TextBox.Text = Convert.ToString(
Me.dgv.CurrentRow.Cells(10).Value)columna12TextBox.Text = Convert.ToString(
Me.dgv.CurrentRow.Cells(11).Value)columna13TextBox.Text = Convert.ToString(
Me.dgv.CurrentRow.Cells(12).Value)columna14TextBox.Text = Convert.ToString(
Me.dgv.CurrentRow.Cells(13).Value)columna15TextBox.Text = Convert.ToString(
Me.dgv.CurrentRow.Cells(14).Value)columna16TextBox.Text = Convert.ToString(
Me.dgv.CurrentRow.Cells(15).Value)FotoPictureBox .................... ? Aqui ya no se que hacer !
** Desde ya muchas gracias, anticipadas y Feliz Año Nuevo para todos!End Sub
Todas las respuestas
-
martes, 30 de diciembre de 2008 15:04
Prueba con esto:
Me
.FotoPictureBox.Image = Me.dgv.CurrentRow.Cells(x).Value -
miércoles, 31 de diciembre de 2008 2:51
No! ya habia probodado esa forma tambien y me da el siguiente error....
No se puede convertir un objeto de tipo System.Byte[] al tipo System.Drawing.Image
Desde ya muchas gracias, sera que esta dificil? no le encuentro la vuelta! -
martes, 30 de junio de 2009 18:58
yo tambien tuve ese problema para pasar de un datagridview a picturebox, pero buscado encontre en internet
algo que si me sirvio, este es el codigo que yo uso en mi sistema, solo que esta hecho en C#, espero que te sirva, saludos.
using
(System.IO.MemoryStream Ms = new System.IO.MemoryStream())//con esto importas el espacio System.IO
{
//pasamos la imagen del datagridview a picturebox
byte[] Img = ((byte[])Rw.Cells[X].Value);//Rw es un DatagridViewRow
Ms.Write(Img, 0,Img.GetUpperBound(0) + 1);
pcBnd.SizeMode =
PictureBoxSizeMode.StretchImage;
pcBnd.Image =
Image.FromStream(Ms);
Ms.Close();
}
- Editado Roberto84 miércoles, 01 de julio de 2009 17:28 mal escrito
- Editado Roberto84 miércoles, 01 de julio de 2009 17:35 Modifcaciones
- Marcado como respuesta Enrique M. MontejoMVP, Moderator miércoles, 01 de junio de 2011 20:39
-
miércoles, 01 de julio de 2009 9:56Hola Compañero
No se si todavia te hace falta
Para formar una imagen desde un array de bytes puedes usar esto
FotoPictureBox.image = Image.FromStream(New MemoryStream(Me.dgv.CurrentRow.Cells(x).value
Hay que importar el espacio de nombres System.IO
Saluodos
Luis -
jueves, 30 de julio de 2009 15:57hola
yo tambien tengo una duda en cuanto al ejercicio propuesto....
el asunto es que yo trabaje con el codigo que hay arriba...
pero yo necesito que los datos del datagriview me los lleve a unos
texbox en otro formulario...
lo que yo hice fue lo mismo solo que modifique esto
MAESTRAS.txtidequipo.Text = Convert.ToString(
Me.DataGridView1.CurrentRow.Cells(0).Value)
maestras: es el nombre del otro formulario
pero solo me pasa a esos textbox el primer registro que hay en el datagriview
mmm que hago????
dicasta02@gmail.com -
miércoles, 02 de mayo de 2012 18:28
Muchísimas gracias amigo, Funciona de Maravilla....
-
miércoles, 02 de mayo de 2012 18:30
No me funciona por que pide que haga el cast
Entonces hice esto:
PictureBox1.Image = ((Image) datagridview1.CurrentRow.Cells(x).Value);
Pero tampoco funciona haciendo el cast

