• Sábado 4 de Mayo de 2024, 14:27

Autor Tema:  Imagen De Sustitucion  (Leído 1566 veces)

izzi

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Imagen De Sustitucion
« en: Sábado 19 de Mayo de 2007, 02:03 »
0
Hola, os comento lo que quiero hacer pero no logro hacer, estoy con una aplicacion para pda y he creado 3 pictureBox en los cuales pongo imagenes de botones para mejorar un poco el entorno del usuario ya que es algo soso, y mi intencion es que al pinchar encima cambie de imagen el pictureBox, como simulando un boton, pero no hay manera, he estado mirando en todos los sitios y no he dado con la forma de implementerlo, por eso me gustaria saber si alguien sabe como hacerlo si es que es posible.




Un saludo y gracias.

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Re: Imagen De Sustitucion
« Respuesta #1 en: Sábado 19 de Mayo de 2007, 04:09 »
0
Veo que no has buscado lo suficiente.

Debes crear el evento con un simple doble click sobre el picturebox.


En el Form1.Designer.cs
Código: Text
  1. namespace DeviceApplication1
  2. {
  3.     partial class Form1
  4.     {
  5.         /// <summary>
  6.         /// Variable del diseñador requerida.
  7.         /// </summary>
  8.         private System.ComponentModel.IContainer components = null;
  9.         private System.Windows.Forms.MainMenu mainMenu1;
  10.  
  11.         /// <summary>
  12.         /// Limpiar los recursos que se estén utilizando.
  13.         /// </summary>
  14.         /// <param name="disposing">true si los recursos administrados se deben eliminar; false en caso contrario, false.</param>
  15.         protected override void Dispose(bool disposing)
  16.         {
  17.             if (disposing && (components != null))
  18.             {
  19.                 components.Dispose();
  20.             }
  21.             base.Dispose(disposing);
  22.         }
  23.  
  24.         #region Código generado por el Diseñador de Windows Forms
  25.  
  26.         /// <summary>
  27.         /// Método necesario para admitir el Diseñador. No se puede modificar
  28.         /// el contenido del método con el editor de código.
  29.         /// </summary>
  30.         private void InitializeComponent()
  31.         {
  32.             this.mainMenu1 = new System.Windows.Forms.MainMenu();
  33.             this.pictureBox1 = new System.Windows.Forms.PictureBox();
  34.             this.SuspendLayout();
  35.             //
  36.             // pictureBox1
  37.             //
  38.             this.pictureBox1.Location = new System.Drawing.Point(93, 87);
  39.             this.pictureBox1.Name = "pictureBox1";
  40.             this.pictureBox1.Size = new System.Drawing.Size(100, 50);
  41.             this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);
  42.             //
  43.             // Form1
  44.             //
  45.             this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
  46.             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
  47.             this.AutoScroll = true;
  48.             this.ClientSize = new System.Drawing.Size(240, 268);
  49.             this.Controls.Add(this.pictureBox1);
  50.             this.Menu = this.mainMenu1;
  51.             this.Name = "Form1";
  52.             this.Text = "Form1";
  53.             this.ResumeLayout(false);
  54.  
  55.         }
  56.  
  57.         #endregion
  58.  
  59.         private System.Windows.Forms.PictureBox pictureBox1;
  60.  

Y en el Form1.cs
Código: Text
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8.  
  9. namespace DeviceApplication1
  10. {
  11.     public partial class Form1 : Form
  12.     {
  13.         public Form1()
  14.         {
  15.             InitializeComponent();
  16.         }
  17.  
  18.         private void pictureBox1_Click(object sender, EventArgs e)
  19.         {
  20.              //QUIERO QUE HAGA ESTO
  21.              //PONER CODIGO ACA
  22.         }
  23.     }
  24.  

Luego a la función solo debes agregarle lo que desees que haga.
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]

izzi

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Re: Imagen De Sustitucion
« Respuesta #2 en: Sábado 19 de Mayo de 2007, 13:14 »
0
Gracias Neopro,pero es que se que donde hay que hacer la llamada a la nueva imagen, el problema es que no se como llamar una imagen de una carpeta, ya que no me deja hacer el Image.LoadFrom para indicar la ruta, y como soy algo nuevo en todo esto pues me vuelvo loco para ver como cargarlo.

Lo tengo estructurado de la siguiente forma:

FMenu.Designer.cs
Código: Text
  1. namespace ASConejos
  2. {
  3.     partial class FMenu
  4.     {
  5.         /// <summary>
  6.         /// Variable del diseñador requerida.
  7.         /// </summary>
  8.         private System.ComponentModel.IContainer components = null;
  9.         private System.Windows.Forms.MainMenu mainMenu1;
  10.  
  11.         /// <summary>
  12.         /// Limpiar los recursos que se estén utilizando.
  13.         /// </summary>
  14.         /// <param name="disposing">true si los recursos administrados se deben eliminar; false en caso contrario, false.</param>
  15.         protected override void Dispose(bool disposing)
  16.         {
  17.             if (disposing && (components != null))
  18.             {
  19.                 components.Dispose();
  20.             }
  21.             base.Dispose(disposing);
  22.         }
  23.  
  24.         #region Código generado por el Diseñador de Windows Forms
  25.  
  26.         /// <summary>
  27.         /// Método necesario para admitir el Diseñador. No se puede modificar
  28.         /// el contenido del método con el editor de código.
  29.         /// </summary>
  30.         private void InitializeComponent()
  31.         {
  32.             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FMenu));
  33.             this.mainMenu1 = new System.Windows.Forms.MainMenu();
  34.             this.button3 = new System.Windows.Forms.Button();
  35.             this.button4 = new System.Windows.Forms.Button();
  36.             this.pictureBox1 = new System.Windows.Forms.PictureBox();
  37.             this.pictureBox2 = new System.Windows.Forms.PictureBox();
  38.             this.pictureBox3 = new System.Windows.Forms.PictureBox();
  39.             this.SuspendLayout();
  40.             //
  41.             // button3
  42.             //
  43.             this.button3.BackColor = System.Drawing.Color.LightSkyBlue;
  44.             this.button3.ForeColor = System.Drawing.SystemColors.ActiveCaptionText;
  45.             this.button3.Location = new System.Drawing.Point(25, 85);
  46.             this.button3.Name = "button3";
  47.             this.button3.Size = new System.Drawing.Size(71, 18);
  48.             this.button3.TabIndex = 2;
  49.             this.button3.Text = "button3";
  50.             //
  51.             // button4
  52.             //
  53.             this.button4.BackColor = System.Drawing.Color.LightSkyBlue;
  54.             this.button4.ForeColor = System.Drawing.SystemColors.ActiveCaptionText;
  55.             this.button4.Location = new System.Drawing.Point(25, 109);
  56.             this.button4.Name = "button4";
  57.             this.button4.Size = new System.Drawing.Size(81, 18);
  58.             this.button4.TabIndex = 3;
  59.             this.button4.Text = "Informes";
  60.             //
  61.             // pictureBox1
  62.             //
  63.             this.pictureBox1.BackColor = System.Drawing.Color.DeepSkyBlue;
  64.             this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
  65.             this.pictureBox1.Location = new System.Drawing.Point(0, 0);
  66.             this.pictureBox1.Name = "pictureBox1";
  67.             this.pictureBox1.Size = new System.Drawing.Size(240, 268);
  68.             //
  69.             // pictureBox2
  70.             //
  71.             this.pictureBox2.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox2.Image")));
  72.             this.pictureBox2.Location = new System.Drawing.Point(25, 27);
  73.             this.pictureBox2.Name = "pictureBox2";
  74.             this.pictureBox2.Size = new System.Drawing.Size(131, 20);
  75.             this.pictureBox2.Click += new System.EventHandler(this.button2_Click);
  76.             //
  77.             // pictureBox3
  78.             //
  79.             this.pictureBox3.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox3.Image")));
  80.             this.pictureBox3.Location = new System.Drawing.Point(28, 59);
  81.             this.pictureBox3.Name = "pictureBox3";
  82.             this.pictureBox3.Size = new System.Drawing.Size(131, 20);
  83.             this.pictureBox3.Click += new System.EventHandler(this.pictureBox3_Click);
  84.            
  85.             //
  86.             // FMenu
  87.             //
  88.             this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
  89.             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
  90.             this.AutoScroll = true;
  91.             this.BackColor = System.Drawing.Color.DeepSkyBlue;
  92.             this.ClientSize = new System.Drawing.Size(240, 268);
  93.             this.Controls.Add(this.pictureBox3);
  94.             this.Controls.Add(this.pictureBox2);
  95.             this.Controls.Add(this.button4);
  96.             this.Controls.Add(this.button3);
  97.             this.Controls.Add(this.pictureBox1);
  98.             this.Menu = this.mainMenu1;
  99.             this.Name = "FMenu";
  100.             this.Text = "FMenu";
  101.             this.ResumeLayout(false);
  102.  
  103.         }
  104.  
  105.         #endregion
  106.  
  107.         private System.Windows.Forms.Button button3;
  108.         private System.Windows.Forms.Button button4;
  109.         private System.Windows.Forms.PictureBox pictureBox1;
  110.         private System.Windows.Forms.PictureBox pictureBox2;
  111.         private System.Windows.Forms.PictureBox pictureBox3;
  112.     }
  113.  

Y el FMenu.cs

Código: Text
  1.  
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Text;
  8. using System.Windows.Forms;
  9.  
  10. namespace ASConejos
  11. {
  12.     public partial class FMenu : Form
  13.     {
  14.         public FMenu()
  15.         {
  16.             InitializeComponent();
  17.         }
  18.  
  19.         private void button2_Click(object sender, EventArgs e)
  20.         {
  21.             Program.form.fexplotacion.Visible = true;
  22.             Program.form.fmenu.Hide();
  23.             Program.form.fexplotacion.Enabled = true;
  24.            
  25.         }
  26.  
  27.         private void button1_Click(object sender, EventArgs e)
  28.         {
  29.             Program.form.fexplotacion.Visible = true;
  30.             Program.form.fmenu.Hide();
  31.             Program.form.fexplotacion.Enabled = true;
  32.  
  33.         }
  34.  
  35.         private void pictureBox2_Click(object sender, EventArgs e)
  36.         {
  37.            
  38.             Program.form.fexplotacion.Visible = true;
  39.             Program.form.fmenu.Hide();
  40.             Program.form.fexplotacion.Enabled = true;
  41.          
  42.         }
  43.  
  44.         private void pictureBox3_Click(object sender, EventArgs e)
  45.         {
  46.  [    [I] AQUI TENDRIA QUE PONER ?¿
  47.  this.pictureBox3.Image = ((System.Drawing.Bitmap)(resources.GetObject("pictureBox4.Image")));[/I]
  48.  
  49. ]
  50.          
  51.   Program.form.fmacho.Visible = true;
  52.             Program.form.fmenu.Hide();
  53.             Program.form.fmacho.Enabled = true;
  54.         }
  55.        
  56.     }
  57. }
  58.  
  59.  

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Re: Imagen De Sustitucion
« Respuesta #3 en: Sábado 19 de Mayo de 2007, 15:51 »
0
Aquí quieres asignarle la imagen en un picture box a otro????

Código: Text
  1.  
  2. this.pictureBox3.Image = ((System.Drawing.Bitmap)(resources.GetObject("pictureBox4.Image")));
  3.  
  4.  
  5.  

Si la imágen es parte de los recursos de C#:

Código: Text
  1.  
  2. Bitmap imagen = new Bitmap(this.GetType(), @"este_es_el_archivo.bmp");
  3. pictureBox3.Image = imagen;
  4.  
  5.  
  6.  

Ese código tambien te sirve para especificar una ruta, pero solo en el caso de archivos BMP, sino debes realizar una conversión.

En esta parte, puede ser asi:
Código: Text
  1.  
  2. @"c:/este_es_el_archivo.bmp"
  3.  
  4.  
  5.  

o (la diferencia es el @ que te permite escribir el acceso tal como es, sino debes separar carpetas con //):

Código: Text
  1.  
  2. "c://este_es_el_archivo.bmp"
  3.  
  4.  
  5.  

La imnágenes guárdalas en BMP, e intenta con este código, si necesitas un programa mas pequeño lo haremos de otra forma, lo que sucede es que la conversión a otro tipo no es muy rápida y en BMP, la carga es inmediata.

Verifica que estés con las referencias adecuadas.
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]