Visionneuse simple

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 176 fois - Téléchargée 29 fois

Contenu du snippet

Je suis débutant en c# (et je n?avais jamais abordé auparavant aucun langage de programmation)
Voilà un des exercices que je viens de réaliser (les modèles trouvés sur le net ne me donnant pas satisfaction)

Dans la forme il faut :
Une Picture Box,
Un Scroll Bar,
Un label pour afficher le numéro de l?image,
Un main menu avec deux sous menu : ouvrir et quitter,

Il faut faire attention à l?incrémentation de la barre de défilement,
Au redimensionement de l?image dans la picture box en utilisant sizemode, strech image.

Source / Exemple :


using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace WindowsApplication1
{
	/// <summary>
	/// Description résumée de Form1.
	/// </summary>
	public class Form1 : System.Windows.Forms.Form
	{
		private System.Windows.Forms.PictureBox pictureBox1;
		private System.Windows.Forms.HScrollBar hScrollBar1;
		private System.Windows.Forms.MainMenu mainMenu1;
		private System.Windows.Forms.MenuItem menuItem1;
		private System.Windows.Forms.MenuItem menuItem2; // OUVRIR
		private System.Windows.Forms.MenuItem menuItem3;
		private System.Windows.Forms.Label label1; // QUITTER
		/// <summary>
		/// Variable nécessaire au concepteur.
		/// </summary>
		private System.ComponentModel.Container components ;

		public Form1()
		{
			//
			// Requis pour la prise en charge du Concepteur Windows Forms
			//
			InitializeComponent();

			//
			// TODO : ajoutez le code du constructeur après l'appel à InitializeComponent
			//
		}

		/// <summary>
		/// Nettoyage des ressources utilisées.
		/// </summary>
		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if (components != null) 
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		#region Code généré par le Concepteur Windows Form
		/// <summary>
		/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
		/// le contenu de cette méthode avec l'éditeur de code.
		/// </summary>
		private void InitializeComponent()
		{
			this.pictureBox1 = new System.Windows.Forms.PictureBox();
			this.hScrollBar1 = new System.Windows.Forms.HScrollBar();
			this.mainMenu1 = new System.Windows.Forms.MainMenu();
			this.menuItem1 = new System.Windows.Forms.MenuItem();
			this.menuItem2 = new System.Windows.Forms.MenuItem();
			this.menuItem3 = new System.Windows.Forms.MenuItem();
			this.label1 = new System.Windows.Forms.Label();
			this.SuspendLayout();
			// 
			// pictureBox1
			// 
			this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill;
			this.pictureBox1.Location = new System.Drawing.Point(0, 0);
			this.pictureBox1.Name = "pictureBox1";
			this.pictureBox1.Size = new System.Drawing.Size(360, 313);
			this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
			this.pictureBox1.TabIndex = 0;
			this.pictureBox1.TabStop = false;
			this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);
			// 
			// hScrollBar1
			// 
			this.hScrollBar1.Dock = System.Windows.Forms.DockStyle.Bottom;
			this.hScrollBar1.LargeChange = 1;
			this.hScrollBar1.Location = new System.Drawing.Point(0, 296);
			this.hScrollBar1.Minimum = 1;
			this.hScrollBar1.Name = "hScrollBar1";
			this.hScrollBar1.Size = new System.Drawing.Size(360, 17);
			this.hScrollBar1.TabIndex = 1;
			this.hScrollBar1.Value = 1;
			this.hScrollBar1.ValueChanged += new System.EventHandler(this.hScrollBar1_ValueChanged);
			// 
			// mainMenu1
			// 
			this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					  this.menuItem1});
			// 
			// menuItem1
			// 
			this.menuItem1.Index = 0;
			this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					  this.menuItem2,
																					  this.menuItem3});
			this.menuItem1.Shortcut = System.Windows.Forms.Shortcut.CtrlM;
			this.menuItem1.Text = "&Menu";
			// 
			// menuItem2
			// 
			this.menuItem2.Index = 0;
			this.menuItem2.Shortcut = System.Windows.Forms.Shortcut.CtrlO;
			this.menuItem2.Text = "&Ouvrir";
			this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click);
			// 
			// menuItem3
			// 
			this.menuItem3.Index = 1;
			this.menuItem3.Shortcut = System.Windows.Forms.Shortcut.CtrlQ;
			this.menuItem3.Text = "&Quitter";
			this.menuItem3.Click += new System.EventHandler(this.menuItem3_Click);
			// 
			// label1
			// 
			this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 6F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
			this.label1.Location = new System.Drawing.Point(344, 0);
			this.label1.Name = "label1";
			this.label1.Size = new System.Drawing.Size(16, 8);
			this.label1.TabIndex = 2;
			this.label1.Click += new System.EventHandler(this.label1_Click);
			// 
			// Form1
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
			this.ClientSize = new System.Drawing.Size(360, 313);
			this.Controls.Add(this.label1);
			this.Controls.Add(this.hScrollBar1);
			this.Controls.Add(this.pictureBox1);
			this.Menu = this.mainMenu1;
			this.Name = "Form1";
			this.Text = "Visionneuse";
			this.ResumeLayout(false);

		}
		#endregion

		/// <summary>
		/// Point d'entrée principal de l'application.
		/// </summary>
		int i = 0;  // Nombre d'images
		ArrayList images = new ArrayList(); // tableau de stockage des images

		[STAThread]
		static void Main() 
		{
			Application.Run(new Form1());
		}

		private void menuItem2_Click(object sender, System.EventArgs e)
		{
		OpenFileDialog openFileDialog1 = new OpenFileDialog();
			openFileDialog1.InitialDirectory = "c:\\image";
			openFileDialog1.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif|All(image) |*.bmp; *.jpg; *.gif";
				openFileDialog1.FilterIndex = 4;
			openFileDialog1.RestoreDirectory = true;
			if (openFileDialog1.ShowDialog() == DialogResult.OK)
			{
				images.Add (openFileDialog1.FileName);
				pictureBox1.Image = new Bitmap(images[images.Count-1].ToString());
					i++;
				hScrollBar1.Maximum = i;
				hScrollBar1.Value = i;
			}

		}

		private void menuItem3_Click(object sender, System.EventArgs e)
		{
			Close();
		}

		private void hScrollBar1_ValueChanged(object sender, System.EventArgs e)
		{
         label1.Text = hScrollBar1.Value.ToString();
		pictureBox1.Image = new Bitmap(images[hScrollBar1.Value-1].ToString());
			
		}

		private void label1_Click(object sender, System.EventArgs e)
		{
		
		}

		private void pictureBox1_Click(object sender, System.EventArgs e)
		{
		
		}

		
	}
}

Conclusion :


j'attends vos appréciations et critiques, et si c'est necessaire je le mettrai à jour.
Merci

A voir également

Ajouter un commentaire

Commentaires

bguissani
Messages postés
1
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
12 janvier 2007

Bravo voilà enfin une façon de récupérer les images qui fonctionne.
MorpionMx
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
44
Bon, y'a encore un peu de boulot, mais si tu débutes, c'est normal.
Il faudrait garder les proportions de l'image, que ta scrollbar reste toujours en bas ( utilise la propriété Anchor, voire Dock).
Parce que quand tu maximises, elle reste en plein milieu de l'image.
Et sinon, tu pourrais peut-etre utiliser la classe ArrayList au lieu d'utiliser un tableau, ca eviterait un depacement de capacité quand plus de 100 images auront été ouvertes.

Tous mes encouragement pour la suite :)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.