Quisiera un poco de ayuda, quisiera saber como cargar una imagen en picturebox cuando selecciono un item en la herramienta listbox algo así http://prntscr.com/41ekjk gracias por su ayuda! :)
Buenas.
(La imagen que posteaste no existe)
Lo que te voy a explicar se puede hacer de varias maneras, también te podría servir para algo la propiedad Tag de un Bitmap/Image.
Simplemente puedes instanciar una colección de imágenes por ejemplo usando un Dictionary y asignarle una llave a cada objeto, dándole el mismo nombre que el Item (o el índice si prefieres) seleccionado del ListBox.
Ejemplo, en VB.NET:
´Public Class Test
' Los items del ListBox.
Private lbItems As String() =
{
"Item1",
"Item2",
"Item3"
}
' El primer Bitmap.
Private bmp1 As New Bitmap(Bitmap.FromFile("C:\Users\Administrador\Desktop\PrtScr capture.jpg", False))
' El segundo Nitmap.
Private bmp2 As New Bitmap(Bitmap.FromFile("C:\Users\Administrador\Desktop\PrtScr capture.jpg", False))
' El diccionario de Bitmaps.
' A cada objeto le asigno un String igual que los Items del ListBox.
Private ImageDictionary As New Dictionary(Of String, Bitmap) From
{
{"Item1", bmp1},
{"Item2", bmp2}
}
' El ListBox.
Private WithEvents lb As New ListBox With
{
.DataSource = lbItems,
.Dock = DockStyle.Bottom
}
' El PictureBox.
Private pcb As New PictureBox With
{
.Dock = DockStyle.Fill,
.BackgroundImageLayout = ImageLayout.Stretch
}
Public Sub New()
' This call is required by the designer.
InitializeComponent()
' Añado los controles al Form.
Me.Controls.AddRange({lb, pcb})
End Sub
' El suscriptor del evento "SelectedIndexChanged" del ListBox.
Private Sub lb_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) _
Handles lb.SelectedIndexChanged
Dim SelectedItem As String = CStr(sender.SelectedItem)
Select Case Me.ImageDictionary.ContainsKey(SelectedItem)
Case True
Me.pcb.BackgroundImage = Me.ImageDictionary(SelectedItem)
Case Else
MessageBox.Show("No se encontró ninguna imagen asociada a este Item.")
End Select
End Sub
End Class
Traducción al vuelo a C# (no lo he testeado):
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
public class Test
{
// Los items del ListBox.
private string[] lbItems = {
"Item1",
"Item2",
"Item3"
};
// El primer Bitmap.
private Bitmap bmp1 = new Bitmap(Bitmap.FromFile("C:\\Users\\Administrador\\Desktop\\PrtScr capture.jpg", false));
// El segundo Nitmap.
private Bitmap bmp2 = new Bitmap(Bitmap.FromFile("C:\\Users\\Administrador\\Desktop\\PrtScr capture.jpg", false));
// El diccionario de Bitmaps.
// A cada objeto le asigno un String igual que los Items del ListBox.
private Dictionary<string, Bitmap> ImageDictionary = new Dictionary<string, Bitmap> {
{
"Item1",
bmp1
},
{
"Item2",
bmp2
}
};
// El ListBox.
private ListBox withEventsField_lb = new ListBox {
DataSource = lbItems,
Dock = DockStyle.Bottom
};
private ListBox lb {
get { return withEventsField_lb; }
set {
if (withEventsField_lb != null) {
withEventsField_lb.SelectedIndexChanged -= lb_SelectedIndexChanged;
}
withEventsField_lb = value;
if (withEventsField_lb != null) {
withEventsField_lb.SelectedIndexChanged += lb_SelectedIndexChanged;
}
}
}
// El PictureBox.
private PictureBox pcb = new PictureBox {
Dock = DockStyle.Fill,
BackgroundImageLayout = ImageLayout.Stretch
};
public Test()
{
// This call is required by the designer.
InitializeComponent();
// Añado los controles al Form.
this.Controls.AddRange({
lb,
pcb
});
}
// El event-handler del evento "SelectedIndexChanged" del ListBox.
private void lb_SelectedIndexChanged(object sender, EventArgs e)
{
string SelectedItem = Convert.ToString(sender.SelectedItem);
switch (this.ImageDictionary.ContainsKey(SelectedItem)) {
case true:
this.pcb.BackgroundImage = this.ImageDictionary(SelectedItem);
break;
default:
MessageBox.Show("No se encontró ninguna imagen asociada a este Item.");
break;
}
}
}
//=======================================================
//Service provided by Telerik (www.telerik.com)
//Conversion powered by NRefactory.
//Twitter: @telerik
//Facebook: facebook.com/telerik
//=======================================================
muchas gracias por responder amigo! oye la imagen si sirve solo tienes que selecionar el link copiar y pegar en la barra del navegador http://i.imgur.com/uXSG8Uf.png
bueno lo estaba haciendo en c# pero ahora ando en visual studio 2010 con visual basic jeje pero aun no doy con lo que quiero :(
Cita de: ChelmiR en 31 Julio 2014, 04:03 AMla imagen si sirve solo tienes que selecionar el link copiar y pegar en la barra del navegador http://i.imgur.com/uXSG8Uf.png
Esa imagen si, pero no es la misma que publicaste en tu primer comentario, como ya dije, aquella url no existe.
Un saludo!