elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Como cargar distintas imágenes desde un listbox en C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como cargar distintas imágenes desde un listbox en C#  (Leído 5,645 veces)
ChelmiR

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Como cargar distintas imágenes desde un listbox en C#
« en: 22 Julio 2014, 19:53 pm »

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! :)


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.810



Ver Perfil
Re: Como cargar distintas imágenes desde un listbox en C#
« Respuesta #1 en: 23 Julio 2014, 23:07 pm »

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:

Código
  1. ´Public Class Test
  2.  
  3.    ' Los items del ListBox.
  4.    Private lbItems As String() =
  5.        {
  6.            "Item1",
  7.            "Item2",
  8.            "Item3"
  9.        }
  10.  
  11.    ' El primer Bitmap.
  12.    Private bmp1 As New Bitmap(Bitmap.FromFile("C:\Users\Administrador\Desktop\PrtScr capture.jpg", False))
  13.  
  14.    ' El segundo Nitmap.
  15.    Private bmp2 As New Bitmap(Bitmap.FromFile("C:\Users\Administrador\Desktop\PrtScr capture.jpg", False))
  16.  
  17.    ' El diccionario de Bitmaps.
  18.    ' A cada objeto le asigno un String igual que los Items del ListBox.
  19.    Private ImageDictionary As New Dictionary(Of String, Bitmap) From
  20.        {
  21.            {"Item1", bmp1},
  22.            {"Item2", bmp2}
  23.        }
  24.  
  25.    ' El ListBox.
  26.    Private WithEvents lb As New ListBox With
  27.        {
  28.            .DataSource = lbItems,
  29.            .Dock = DockStyle.Bottom
  30.        }
  31.  
  32.    ' El PictureBox.
  33.    Private pcb As New PictureBox With
  34.        {
  35.            .Dock = DockStyle.Fill,
  36.            .BackgroundImageLayout = ImageLayout.Stretch
  37.        }
  38.  
  39.    Public Sub New()
  40.  
  41.        ' This call is required by the designer.
  42.        InitializeComponent()
  43.  
  44.        ' Añado los controles al Form.
  45.        Me.Controls.AddRange({lb, pcb})
  46.  
  47.    End Sub
  48.  
  49.    ' El suscriptor del evento "SelectedIndexChanged" del ListBox.
  50.    Private Sub lb_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) _
  51.    Handles lb.SelectedIndexChanged
  52.  
  53.        Dim SelectedItem As String = CStr(sender.SelectedItem)
  54.  
  55.        Select Case Me.ImageDictionary.ContainsKey(SelectedItem)
  56.  
  57.            Case True
  58.                Me.pcb.BackgroundImage = Me.ImageDictionary(SelectedItem)
  59.  
  60.            Case Else
  61.                MessageBox.Show("No se encontró ninguna imagen asociada a este Item.")
  62.  
  63.        End Select
  64.  
  65.    End Sub
  66.  
  67. End Class

Traducción al vuelo a C# (no lo he testeado):

Código
  1. using Microsoft.VisualBasic;
  2. using System;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using System.Data;
  6. using System.Diagnostics;
  7. public class Test
  8. {
  9.  
  10. // Los items del ListBox.
  11. private string[] lbItems = {
  12. "Item1",
  13. "Item2",
  14. "Item3"
  15.  
  16. };
  17. // El primer Bitmap.
  18.  
  19. private Bitmap bmp1 = new Bitmap(Bitmap.FromFile("C:\\Users\\Administrador\\Desktop\\PrtScr capture.jpg", false));
  20. // El segundo Nitmap.
  21.  
  22. private Bitmap bmp2 = new Bitmap(Bitmap.FromFile("C:\\Users\\Administrador\\Desktop\\PrtScr capture.jpg", false));
  23. // El diccionario de Bitmaps.
  24. // A cada objeto le asigno un String igual que los Items del ListBox.
  25. private Dictionary<string, Bitmap> ImageDictionary = new Dictionary<string, Bitmap> {
  26. {
  27. "Item1",
  28. bmp1
  29. },
  30. {
  31. "Item2",
  32. bmp2
  33. }
  34.  
  35. };
  36. // El ListBox.
  37. private ListBox withEventsField_lb = new ListBox {
  38. DataSource = lbItems,
  39. Dock = DockStyle.Bottom
  40. };
  41. private ListBox lb {
  42. get { return withEventsField_lb; }
  43. set {
  44. if (withEventsField_lb != null) {
  45. withEventsField_lb.SelectedIndexChanged -= lb_SelectedIndexChanged;
  46. }
  47. withEventsField_lb = value;
  48. if (withEventsField_lb != null) {
  49. withEventsField_lb.SelectedIndexChanged += lb_SelectedIndexChanged;
  50. }
  51. }
  52.  
  53. }
  54. // El PictureBox.
  55. private PictureBox pcb = new PictureBox {
  56. Dock = DockStyle.Fill,
  57. BackgroundImageLayout = ImageLayout.Stretch
  58.  
  59. };
  60.  
  61. public Test()
  62. {
  63. // This call is required by the designer.
  64. InitializeComponent();
  65.  
  66. // Añado los controles al Form.
  67. this.Controls.AddRange({
  68. lb,
  69. pcb
  70. });
  71.  
  72. }
  73.  
  74. // El event-handler del evento "SelectedIndexChanged" del ListBox.
  75.  
  76. private void lb_SelectedIndexChanged(object sender, EventArgs e)
  77. {
  78. string SelectedItem = Convert.ToString(sender.SelectedItem);
  79.  
  80. switch (this.ImageDictionary.ContainsKey(SelectedItem)) {
  81.  
  82. case true:
  83. this.pcb.BackgroundImage = this.ImageDictionary(SelectedItem);
  84.  
  85. break;
  86. default:
  87. MessageBox.Show("No se encontró ninguna imagen asociada a este Item.");
  88.  
  89. break;
  90. }
  91.  
  92. }
  93.  
  94. }
  95.  
  96. //=======================================================
  97. //Service provided by Telerik (www.telerik.com)
  98. //Conversion powered by NRefactory.
  99. //Twitter: @telerik
  100. //Facebook: facebook.com/telerik
  101. //=======================================================
  102.  


« Última modificación: 23 Julio 2014, 23:10 pm por Eleкtro » En línea

ChelmiR

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Como cargar distintas imágenes desde un listbox en C#
« Respuesta #2 en: 31 Julio 2014, 04:03 am »

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 :(
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.810



Ver Perfil
Re: Como cargar distintas imágenes desde un listbox en C#
« Respuesta #3 en: 31 Julio 2014, 04:06 am »

la 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!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines