ImageList Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit des méthodes pour gérer une collection d'objets Image. Cette classe ne peut pas être héritée.
public ref class ImageList sealed : System::ComponentModel::Component
[System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.ImageListConverter))]
public sealed class ImageList : System.ComponentModel.Component
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.ImageListConverter))>]
type ImageList = class
inherit Component
Public NotInheritable Class ImageList
Inherits Component
- Héritage
- Attributs
Exemples
L’exemple de code suivant montre comment sélectionner, supprimer et afficher des images.
namespace myImageRotator
#using <System.dll>
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>
{
using namespace System;
using namespace System::Drawing;
using namespace System::ComponentModel;
using namespace System::Windows::Forms;
public ref class Form1 : public System::Windows::Forms::Form
{
private:
System::ComponentModel::IContainer^ components;
private:
System::Windows::Forms::ListBox^ listBox1;
private:
System::Windows::Forms::Label^ label3;
private:
System::Windows::Forms::Button^ button1;
private:
System::Windows::Forms::Button^ button2;
private:
System::Windows::Forms::Button^ button3;
private:
System::Windows::Forms::Button^ button4;
private:
System::Windows::Forms::PictureBox^ pictureBox1;
private:
System::Windows::Forms::ImageList^ imageList1;
private:
System::Windows::Forms::OpenFileDialog^ openFileDialog1;
protected:
Graphics^ myGraphics;
private:
System::Windows::Forms::Panel^ panel1;
private:
System::Windows::Forms::Label^ label5;
private:
int currentImage;
public:
Form1()
{
InitializeComponent();
imageList1 = gcnew ImageList () ;
currentImage = 0;
// The default image size is 16 x 16, which sets up a larger
// image size.
imageList1->ImageSize = System::Drawing::Size(255,255);
imageList1->TransparentColor = Color::White;
// Assigns the graphics object to use in the draw options.
myGraphics = Graphics::FromHwnd(panel1->Handle);
}
private:
void InitializeComponent()
{
this->components = gcnew System::ComponentModel::Container();
this->listBox1 = gcnew System::Windows::Forms::ListBox();
this->label3 = gcnew System::Windows::Forms::Label();
this->button1 = gcnew System::Windows::Forms::Button();
this->button2 = gcnew System::Windows::Forms::Button();
this->button3 = gcnew System::Windows::Forms::Button();
this->button4 = gcnew System::Windows::Forms::Button();
this->pictureBox1 = gcnew System::Windows::Forms::PictureBox();
this->imageList1 = gcnew System::Windows::Forms::ImageList(this->components);
this->openFileDialog1 = gcnew System::Windows::Forms::OpenFileDialog();
this->panel1 = gcnew System::Windows::Forms::Panel();
this->label5 = gcnew System::Windows::Forms::Label();
this->SuspendLayout();
this->listBox1->Location = System::Drawing::Point(16, 16);
this->listBox1->Size = System::Drawing::Size(400, 95);
this->listBox1->TabIndex = 0;
this->label3->Location = System::Drawing::Point(24, 168);
this->label3->Text = "label3";
this->button1->Location = System::Drawing::Point(96, 128);
this->button1->Size = System::Drawing::Size(104, 23);
this->button1->Text = "Show Next Image";
this->button1->Click += gcnew System::EventHandler(this,&Form1::button1_Click);
this->button2->Location = System::Drawing::Point(208, 128);
this->button2->Size = System::Drawing::Size(104, 23);
this->button2->Text = "Remove Image";
this->button2->Click += gcnew System::EventHandler(this,&Form1::button2_Click);
this->button3->Location = System::Drawing::Point(320, 128);
this->button3->Text = "Clear List";
this->button3->Click += gcnew System::EventHandler(this,&Form1::button3_Click);
this->button4->Location = System::Drawing::Point(16, 128);
this->button4->Text = "Open Image";
this->button4->Click += gcnew System::EventHandler(this,&Form1::button4_Click);
this->pictureBox1->Location = System::Drawing::Point(328, 232);
this->pictureBox1->Size = System::Drawing::Size(336, 192);
this->imageList1->ImageSize = System::Drawing::Size(16, 16);
this->imageList1->TransparentColor = System::Drawing::Color::Transparent;
this->panel1->Location = System::Drawing::Point(8, 240);
this->panel1->Size = System::Drawing::Size(296, 184);
this->label5->Location = System::Drawing::Point(168, 168);
this->label5->Size = System::Drawing::Size(312, 40);
this->label5->Text = "label5";
this->ClientSize = System::Drawing::Size(672, 461);
this->Controls->Add(this->label5);
this->Controls->Add(this->panel1);
this->Controls->Add(this->pictureBox1);
this->Controls->Add(this->button4);
this->Controls->Add(this->button3);
this->Controls->Add(this->button2);
this->Controls->Add(this->button1);
this->Controls->Add(this->label3);
this->Controls->Add(this->listBox1);
this->ResumeLayout(false);
}
// Display the image.
private:
void button1_Click (Object^ /*sender*/, System::EventArgs^ /*e*/)
{
if(imageList1->Images->Empty != true)
{
if(imageList1->Images->Count-1 > currentImage)
{
currentImage++;
}
else
{
currentImage=0;
}
panel1->Refresh();
// Draw the image in the panel.
imageList1->Draw(myGraphics,10,10,currentImage);
// Show the image in the PictureBox.
pictureBox1->Image = imageList1->Images[currentImage];
label3->Text = "Current image is " + currentImage ;
listBox1->SelectedIndex = currentImage;
// label5->Text = "Image is " + listBox1->Text ;
label5->Text = String::Concat("Image is ",listBox1->Text);
}
}
// Remove the image.
private:
void button2_Click (Object^ /*sender*/, System::EventArgs^ /*e*/)
{
imageList1->Images->RemoveAt(listBox1->SelectedIndex);
listBox1->Items->Remove(listBox1->SelectedItem);
}
// Clear all images.
private:
void button3_Click (Object^ /*sender*/, System::EventArgs^ /*e*/)
{
imageList1->Images->Clear();
listBox1->Items->Clear();
}
// Find an image.
private:
void button4_Click (Object^ /*sender*/, System::EventArgs^ /*e*/)
{
openFileDialog1->Multiselect = true ;
if(openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
{
if (openFileDialog1->FileNames != nullptr)
{
for(int i =0 ; i < openFileDialog1->FileNames->Length ; i++ )
{
addImage(openFileDialog1->FileNames[i]);
}
}
else
addImage(openFileDialog1->FileName);
}
}
private:
void addImage(String^ imageToLoad)
{
if (imageToLoad != "")
{
imageList1->Images->Add(Image::FromFile(imageToLoad));
listBox1->BeginUpdate();
listBox1->Items->Add(imageToLoad);
listBox1->EndUpdate();
}
}
public:
static void Main(array<String^>^ /*args*/)
{
Application::Run(gcnew Form1());
}
};
}
[STAThreadAttribute]
int main(){
myImageRotator::Form1::Main(nullptr);
}
namespace myImageRotator
{
using System;
using System.Drawing;
using System.ComponentModel;
using System.Windows.Forms;
public class Form1 : System.Windows.Forms.Form
{
private System.ComponentModel.IContainer components;
private System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.Button button4;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.ImageList imageList1;
private System.Windows.Forms.OpenFileDialog openFileDialog1;
protected Graphics myGraphics;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Label label5;
private int currentImage = 0;
public Form1()
{
InitializeComponent();
imageList1 = new ImageList () ;
// The default image size is 16 x 16, which sets up a larger
// image size.
imageList1.ImageSize = new Size(255,255);
imageList1.TransparentColor = Color.White;
// Assigns the graphics object to use in the draw options.
myGraphics = Graphics.FromHwnd(panel1.Handle);
}
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.listBox1 = new System.Windows.Forms.ListBox();
this.label3 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.button4 = new System.Windows.Forms.Button();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.panel1 = new System.Windows.Forms.Panel();
this.label5 = new System.Windows.Forms.Label();
this.SuspendLayout();
this.listBox1.Location = new System.Drawing.Point(16, 16);
this.listBox1.Size = new System.Drawing.Size(400, 95);
this.listBox1.TabIndex = 0;
this.label3.Location = new System.Drawing.Point(24, 168);
this.label3.Text = "label3";
this.button1.Location = new System.Drawing.Point(96, 128);
this.button1.Size = new System.Drawing.Size(104, 23);
this.button1.Text = "Show Next Image";
this.button1.Click += new System.EventHandler(this.button1_Click);
this.button2.Location = new System.Drawing.Point(208, 128);
this.button2.Size = new System.Drawing.Size(104, 23);
this.button2.Text = "Remove Image";
this.button2.Click += new System.EventHandler(this.button2_Click);
this.button3.Location = new System.Drawing.Point(320, 128);
this.button3.Text = "Clear List";
this.button3.Click += new System.EventHandler(this.button3_Click);
this.button4.Location = new System.Drawing.Point(16, 128);
this.button4.Text = "Open Image";
this.button4.Click += new System.EventHandler(this.button4_Click);
this.pictureBox1.Location = new System.Drawing.Point(328, 232);
this.pictureBox1.Size = new System.Drawing.Size(336, 192);
this.imageList1.ImageSize = new System.Drawing.Size(16, 16);
this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
this.panel1.Location = new System.Drawing.Point(8, 240);
this.panel1.Size = new System.Drawing.Size(296, 184);
this.label5.Location = new System.Drawing.Point(168, 168);
this.label5.Size = new System.Drawing.Size(312, 40);
this.label5.Text = "label5";
this.ClientSize = new System.Drawing.Size(672, 461);
this.Controls.Add(this.label5);
this.Controls.Add(this.panel1);
this.Controls.Add(this.pictureBox1);
this.Controls.Add(this.button4);
this.Controls.Add(this.button3);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Controls.Add(this.label3);
this.Controls.Add(this.listBox1);
this.ResumeLayout(false);
}
// Display the image.
private void button1_Click (object sender, System.EventArgs e)
{
if(imageList1.Images.Empty != true)
{
if(imageList1.Images.Count-1 > currentImage)
{
currentImage++;
}
else
{
currentImage=0;
}
panel1.Refresh();
// Draw the image in the panel.
imageList1.Draw(myGraphics,10,10,currentImage);
// Show the image in the PictureBox.
pictureBox1.Image = imageList1.Images[currentImage];
label3.Text = "Current image is " + currentImage ;
listBox1.SelectedIndex = currentImage;
label5.Text = "Image is " + listBox1.Text ;
}
}
// Remove the image.
private void button2_Click (object sender, System.EventArgs e)
{
imageList1.Images.RemoveAt(listBox1.SelectedIndex);
listBox1.Items.Remove(listBox1.SelectedItem);
}
// Clear all images.
private void button3_Click (object sender, System.EventArgs e)
{
imageList1.Images.Clear();
listBox1.Items.Clear();
}
// Find an image.
private void button4_Click (object sender, System.EventArgs e)
{
openFileDialog1.Multiselect = true ;
if(openFileDialog1.ShowDialog() == DialogResult.OK)
{
if (openFileDialog1.FileNames != null)
{
for(int i =0 ; i < openFileDialog1.FileNames.Length ; i++ )
{
addImage(openFileDialog1.FileNames[i]);
}
}
else
{
addImage(openFileDialog1.FileName);
}
}
}
private void addImage(string imageToLoad)
{
if (imageToLoad != "")
{
imageList1.Images.Add(Image.FromFile(imageToLoad));
listBox1.BeginUpdate();
listBox1.Items.Add(imageToLoad);
listBox1.EndUpdate();
}
}
[STAThread]
public static void Main(string[] args)
{
Application.Run(new Form1());
}
}
}
Imports System.Drawing
Imports System.ComponentModel
Imports System.Windows.Forms
Public Class Form1
Inherits System.Windows.Forms.Form
Private listBox1 As System.Windows.Forms.ListBox
Private label3 As System.Windows.Forms.Label
Private WithEvents button1 As System.Windows.Forms.Button
Private WithEvents button2 As System.Windows.Forms.Button
Private WithEvents button3 As System.Windows.Forms.Button
Private WithEvents button4 As System.Windows.Forms.Button
Private pictureBox1 As System.Windows.Forms.PictureBox
Private imageList1 As System.Windows.Forms.ImageList
Private openFileDialog1 As System.Windows.Forms.OpenFileDialog
Protected myGraphics As Graphics
Private panel1 As System.Windows.Forms.Panel
Private label5 As System.Windows.Forms.Label
Private currentImage As Integer = 0
Public Sub New()
imageList1 = New ImageList()
InitializeComponent()
' The default image size is 16 x 16, which sets up a larger
' image size.
imageList1.ImageSize = New Size(255, 255)
imageList1.TransparentColor = Color.White
' Assigns the graphics object to use in the draw options.
myGraphics = Graphics.FromHwnd(panel1.Handle)
End Sub
Private Sub InitializeComponent()
Me.listBox1 = New System.Windows.Forms.ListBox()
Me.label3 = New System.Windows.Forms.Label()
Me.button1 = New System.Windows.Forms.Button()
Me.button2 = New System.Windows.Forms.Button()
Me.button3 = New System.Windows.Forms.Button()
Me.button4 = New System.Windows.Forms.Button()
Me.pictureBox1 = New System.Windows.Forms.PictureBox()
Me.openFileDialog1 = New System.Windows.Forms.OpenFileDialog()
Me.panel1 = New System.Windows.Forms.Panel()
Me.label5 = New System.Windows.Forms.Label()
Me.SuspendLayout()
Me.listBox1.Location = New System.Drawing.Point(16, 16)
Me.listBox1.Size = New System.Drawing.Size(400, 95)
Me.listBox1.TabIndex = 0
Me.label3.Location = New System.Drawing.Point(24, 168)
Me.label3.Text = "label3"
Me.button1.Location = New System.Drawing.Point(96, 128)
Me.button1.Size = New System.Drawing.Size(104, 23)
Me.button1.Text = "Show Next Image"
Me.button2.Location = New System.Drawing.Point(208, 128)
Me.button2.Size = New System.Drawing.Size(104, 23)
Me.button2.Text = "Remove Image"
Me.button3.Location = New System.Drawing.Point(320, 128)
Me.button3.Text = "Clear List"
Me.button4.Location = New System.Drawing.Point(16, 128)
Me.button4.Text = "Open Image"
Me.pictureBox1.Location = New System.Drawing.Point(328, 232)
Me.pictureBox1.Size = New System.Drawing.Size(336, 192)
Me.imageList1.ImageSize = New System.Drawing.Size(16, 16)
Me.imageList1.TransparentColor = System.Drawing.Color.Transparent
Me.panel1.Location = New System.Drawing.Point(8, 240)
Me.panel1.Size = New System.Drawing.Size(296, 184)
Me.label5.Location = New System.Drawing.Point(168, 168)
Me.label5.Size = New System.Drawing.Size(312, 40)
Me.label5.Text = "label5"
Me.ClientSize = New System.Drawing.Size(672, 461)
Me.Controls.Add(label5)
Me.Controls.Add(panel1)
Me.Controls.Add(pictureBox1)
Me.Controls.Add(button4)
Me.Controls.Add(button3)
Me.Controls.Add(button2)
Me.Controls.Add(button1)
Me.Controls.Add(label3)
Me.Controls.Add(listBox1)
Me.ResumeLayout(False)
End Sub
' Display the image.
Private Sub button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles button1.Click
If imageList1.Images.Empty <> True Then
If imageList1.Images.Count - 1 > currentImage Then
currentImage += 1
Else
currentImage = 0
End If
panel1.Refresh()
' Draw the image in the panel.
imageList1.Draw(myGraphics, 10, 10, currentImage)
' Show the image in the PictureBox.
pictureBox1.Image = imageList1.Images(currentImage)
label3.Text = "Current image is " + currentImage.ToString
listBox1.SelectedIndex = currentImage
label5.Text = "Image is " + listBox1.Text
End If
End Sub
' Remove the image.
Private Sub button2_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles button2.Click
imageList1.Images.RemoveAt(listBox1.SelectedIndex)
listBox1.Items.Remove(listBox1.SelectedItem)
End Sub
' Clear all images.
Private Sub button3_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles button3.Click
imageList1.Images.Clear()
listBox1.Items.Clear()
End Sub
' Find an image.
Private Sub button4_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles button4.Click
openFileDialog1.Multiselect = True
If openFileDialog1.ShowDialog() = DialogResult.OK Then
If (openFileDialog1.FileNames IsNot Nothing) Then
Dim i As Integer
For i = 0 To openFileDialog1.FileNames.Length - 1
addImage(openFileDialog1.FileNames(i))
Next i
Else
addImage(openFileDialog1.FileName)
End If
End If
End Sub
Private Sub addImage(ByVal imageToLoad As String)
If imageToLoad <> "" Then
imageList1.Images.Add(Image.FromFile(imageToLoad))
listBox1.BeginUpdate()
listBox1.Items.Add(imageToLoad)
listBox1.EndUpdate()
End If
End Sub
<StaThread()> _
Public Shared Sub Main(ByVal args() As String)
Application.Run(New Form1())
End Sub
End Class
Remarques
ImageList est généralement utilisé par d’autres contrôles, tels que le ListView, TreeViewou ToolBar. Vous pouvez ajouter des bitmaps ou des icônes au ImageList, et les autres contrôles sont en mesure d’utiliser les images comme elles le nécessitent.
ImageList utilise un handle pour gérer la liste des images. L’opération Handle n’est pas créée tant que certaines opérations, telles que l’obtention ou l’appel Handle Draw, sont effectuées sur la liste d’images. L’exécution d’autres opérations, telles que la définition du ColorDepth ou ImageSize la recréation, entraîne la Handle recréation. Par conséquent, vous devez effectuer ces opérations avant d’ajouter des images au ImageList. En outre, lorsque vous utilisez des formulaires localisés, vous devez toujours ajouter une ImageList et des images lorsque la propriété Language d’un formulaire est définie sur Default. La modification de la langue du formulaire avant d’ajouter des images endommage les fichiers de ressources de l’application.
Constructeurs
ImageList() |
Initialise une nouvelle instance de la classe ImageList avec des valeurs par défaut pour ColorDepth, ImageSize et TransparentColor. |
ImageList(IContainer) |
Initialise une nouvelle instance de la classe ImageList, en l'associant à un conteneur. |
Propriétés
CanRaiseEvents |
Obtient une valeur qui indique si le composant peut déclencher un événement. (Hérité de Component) |
ColorDepth |
Obtient la profondeur de couleur de la liste d'images. |
Container |
Obtient le IContainer qui contient la Component. (Hérité de Component) |
DesignMode |
Obtient une valeur qui indique si Component est actuellement en mode design. (Hérité de Component) |
Events |
Obtient la liste des gestionnaires d'événements attachés à ce Component. (Hérité de Component) |
Handle |
Obtient le handle de l'objet liste d'images. |
HandleCreated |
Obtient une valeur indiquant si le handle Win32 sous-jacent a été créé. |
Images |
Obtient ImageList.ImageCollection pour cette liste d'images. |
ImageSize |
Obtient ou définit la taille des images dans la liste d'images. |
ImageStream |
Obtient le ImageListStreamer associé à cette liste d'images. |
Site |
Obtient ou définit le ISite de Component. (Hérité de Component) |
Tag |
Obtient ou définit un objet qui contient les données supplémentaires relatives à ImageList. |
TransparentColor |
Obtient ou définit la couleur à traiter comme transparente. |
Méthodes
CreateObjRef(Type) |
Crée un objet contenant toutes les informations appropriées requises pour générer un proxy permettant de communiquer avec un objet distant. (Hérité de MarshalByRefObject) |
Dispose() |
Libère toutes les ressources utilisées par Component. (Hérité de Component) |
Dispose(Boolean) |
Libère les ressources non managées utilisées par Component et libère éventuellement les ressources managées. (Hérité de Component) |
Draw(Graphics, Int32, Int32, Int32) |
Dessine l'image indiquée par l'index donné sur le Graphics spécifié à l'emplacement donné. |
Draw(Graphics, Int32, Int32, Int32, Int32, Int32) |
Dessine l'image indiquée par l'index donné sur l'objet Graphics spécifié en utilisant l'objet et la taille spécifiés. |
Draw(Graphics, Point, Int32) |
Dessine l'image indiquée par l'index spécifié sur le Graphics spécifié à l'emplacement donné. |
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetLifetimeService() |
Obsolète.
Récupère l'objet de service de durée de vie en cours qui contrôle la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject) |
GetService(Type) |
Retourne un objet qui représente un service fourni par Component ou par son Container. (Hérité de Component) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
InitializeLifetimeService() |
Obsolète.
Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
MemberwiseClone(Boolean) |
Crée une copie superficielle de l'objet MarshalByRefObject actuel. (Hérité de MarshalByRefObject) |
ToString() |
Retourne une chaîne qui représente le ImageList actuel. |
Événements
Disposed |
Se produit lorsque le composant est supprimé par un appel à la méthode Dispose(). (Hérité de Component) |
RecreateHandle |
Se produit suite à la recréation de Handle. |