ImageList Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce i metodi per la gestione di un insieme di oggetti Image. La classe non può essere ereditata.
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
- Ereditarietà
- Attributi
Esempio
Nell'esempio di codice seguente viene illustrato come selezionare, rimuovere e visualizzare immagini.
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
Commenti
ImageListviene in genere usato da altri controlli, ad esempio , ListViewTreeViewo ToolBar. È possibile aggiungere bitmap o icone all'oggetto ImageListe gli altri controlli possono usare le immagini in base alle proprie richieste.
ImageList usa un handle per gestire l'elenco di immagini. L'oggetto Handle non viene creato fino a quando non vengono eseguite determinate operazioni, ad esempio ottenere o Handle chiamare Draw, nell'elenco di immagini. L'esecuzione di altre operazioni, ad esempio l'impostazione o ImageSize causerà la ricreazione dell'oggetto.ColorDepth Handle Pertanto, è necessario eseguire queste operazioni prima di aggiungere immagini all'oggetto ImageList. Inoltre, quando si utilizzano moduli che verranno localizzati, è consigliabile aggiungere sempre un oggetto ImageList e immagini quando la proprietà Language di un modulo è impostata su Default. Se si modifica la lingua del modulo prima di aggiungere immagini, i file di risorse dell'applicazione verranno danneggiati.
Costruttori
ImageList() |
Inizializza una nuova istanza della classe ImageList con i valori predefiniti per ColorDepth, ImageSize e TransparentColor. |
ImageList(IContainer) |
Inizializza una nuova istanza della classe ImageList associandola a un contenitore. |
Proprietà
CanRaiseEvents |
Ottiene un valore che indica se il componente può generare un evento. (Ereditato da Component) |
ColorDepth |
Ottiene la profondità di colore dell'elenco immagini. |
Container |
Ottiene l'oggetto IContainer che contiene Component. (Ereditato da Component) |
DesignMode |
Ottiene un valore che indica se il Component si trova in modalità progettazione. (Ereditato da Component) |
Events |
Ottiene l'elenco dei gestori eventi allegati a questo Component. (Ereditato da Component) |
Handle |
Ottiene l'handle dell'oggetto elenco immagini. |
HandleCreated |
Ottiene un valore che indica se l'handle Win32 sottostante è stato creato. |
Images |
Ottiene l'oggetto ImageList.ImageCollection di questo elenco immagini. |
ImageSize |
Ottiene o imposta la dimensione delle immagini nell'elenco immagini. |
ImageStream |
Ottiene la classe ImageListStreamer associata a questo elenco immagini. |
Site |
Ottiene o imposta l'oggetto ISite di Component. (Ereditato da Component) |
Tag |
Ottiene o imposta un oggetto che contiene ulteriori dati relativi a ImageList. |
TransparentColor |
Ottiene o imposta il colore da considerare trasparente. |
Metodi
CreateObjRef(Type) |
Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto. (Ereditato da MarshalByRefObject) |
Dispose() |
Rilascia tutte le risorse usate da Component. (Ereditato da Component) |
Dispose(Boolean) |
Rilascia le risorse non gestite usate da Component e, facoltativamente, le risorse gestite. (Ereditato da Component) |
Draw(Graphics, Int32, Int32, Int32) |
Disegna l'immagine indicata dall'indice dato sul Graphics specificato nella posizione specificata. |
Draw(Graphics, Int32, Int32, Int32, Int32, Int32) |
Disegna l'immagine indicata dall'indice dato sull'oggetto Graphics specificato utilizzando la posizione e le dimensioni specificate. |
Draw(Graphics, Point, Int32) |
Disegna l'immagine indicata dall'indice specificato sull'oggetto Graphics e nella posizione specificati. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetLifetimeService() |
Obsoleta.
Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza. (Ereditato da MarshalByRefObject) |
GetService(Type) |
Consente di restituire un oggetto che rappresenta un servizio fornito da Component o dal relativo Container. (Ereditato da Component) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
InitializeLifetimeService() |
Obsoleta.
Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza. (Ereditato da MarshalByRefObject) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
MemberwiseClone(Boolean) |
Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente. (Ereditato da MarshalByRefObject) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto ImageList corrente. |
Eventi
Disposed |
Si verifica quando il componente viene eliminato da una chiamata al metodo Dispose(). (Ereditato da Component) |
RecreateHandle |
Si verifica quando viene ricreata la proprietà Handle. |