Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

ImageList Wizard

0.00/5 (No votes)
25 Nov 2002 1  
A wizard application for creating ImageLists

Introduction

Creating ImageLists is a very time consuming activity especially when one isn't using VS.NET. ImageList Maker is a .NET powered wizard that will help developers create ImageList Assemblies.

Creating ImageLists with this wizard is a very easy and straight forward process. The application creates a C# source file and when specified it also creates and compiles an assembly.

System Requirements

  • Microsoft Windows 95+ / NT4+
  • Microsoft .NET SDK (version 1.0 release; not Beta 1, 2, etc)
  • A humoristic attitude.

Screenshots:

Generated Source Code

This code is automatically compiled to an assembly DLL for you if you choose the option in the wizard.

namespace MyNamespace 
{
    using System;
    using System.Resources;
    using System.Drawing;
    using System.Windows.Forms;
    using System.Collections;
    using System.ComponentModel;
    
    public class MyImageList 
    {
        private ArrayList imgNames;
        private ImageList _imageList;
        
        // Get Set property for imagelist

        public ImageList TheImageList 
        {
            get 
            {
                return(_imageList);
            }
            
            set 
            {
                _imageList = value;
            }
        }
        
        // Get property for image names 

        public ArrayList ImageNames 
        {
            get 
            {
                return imgNames;
            }
        }
        
        // Constructor

        public MyImageList() 
        {
            _init();    
        }        
        
        // Retrives image index in this image list 

        // by saved filename

        public int GetIndex(string iname) 
        {
            return imgNames.IndexOf(iname);
        }
        
        // Initializing image list

        private void _init() 
        {
            // Creating a resource manager containing the images

            ResourceManager Rm = new ResourceManager(
                "TSIML_MyImageList", GetType().Assembly);
            
            // General

            _imageList = new ImageList();
            _imageList.ImageSize = new Size(
                (int) Rm.GetObject("IWIDTH"),
                (int) Rm.GetObject("IHEIGHT"));
                 
            _imageList.TransparentColor = 
                (Color) Rm.GetObject("ITRANS");
                
            _imageList.ColorDepth = ColorDepth.Depth32Bit;
            
            // Getting image names;

            imgNames = (ArrayList)Rm.GetObject("INAMES");
            
            // Loadng images in the image list

            foreach(object name in imgNames) 
            {
                _imageList.Images.Add(
                    (Image)Rm.GetObject((string)name));
            }
        }
    }
}

How to use the output

Here is a code example to show you how to use the resulting source code by ImageList Maker

// created on 31-5-2002 at 12:03

namespace TrueSoftware 
{
    using System;
    using System.Windows.Forms;
    using System.Resources;
    using MyNamespace;
    
    public class MyImageList_TestApp : Form 
    {
        public MyImageList_TestApp() 
        {
            // General

            Width = 320;
            Height = 200;
            Text = "MyImageList Test Application " +
                "by TrueSoftware";

            StartPosition = FormStartPosition.CenterScreen;
            
            // Creating and Populating a listview

            MyImageList imgMyImageList = new MyImageList();
            ListView lvTestView = new ListView();
            
            // ********************************************

            // Assigning the imgMyImageList.TheImageList to 

            // the listview's LargeImageList

            lvTestView.LargeImageList = 
                imgMyImageList.TheImageList;
            
            // Populating

            foreach(object name in imgMyImageList.ImageNames) 
            {
                lvTestView.Items.Add(
                    (string) name,
                    imgMyImageList.GetIndex((string)name));
            }
            
            // Setting some properties

            lvTestView.Dock = DockStyle.Fill;
            
            // Adding listview to the main form

            Controls.Add(lvTestView);
        }
        
        public static void Main(string[] args) {
            Application.Run(new MyImageList_TestApp() );
        }
    }
}

Updates

22 Nov2002
  • Updated downloads.
09 Aug 2002
  • Beta source code added to Imlmaker.zip
  • Final source code with documentation in progress
01 June 2002
  • Long directory names bug has been solved.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here