C#将图像添加到列表中

时间:2014-06-25 23:56:11

标签: c# image list

我正在尝试将已经使用过的图像添加到名为“Images1”的imageList中。 我不是很擅长编码程序,但我知道我的程序的其余部分正在工作,除了最后两个空洞不存在“Images1”的事实。我搜索解决了这个问题,但我很难找到这个具体案例的答案。

如何使我的图像列表“Images1”可用于我的所有私人空间?

这是我的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Collections;
using System.Globalization;
using System.Resources;
using System.Reflection;

namespace Booster_pack_2
{
    public partial class Form3 : Form
    {
        public Form3()
        {
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            List<Image> Images1 = new List<Image>();
            ResourceManager rm = Booster_pack_2.Properties.Resources.ResourceManager;
           string index1 = textBox1.Text;
            Bitmap image1 = (Bitmap)rm.GetObject(index1);
            pictureBox1.Image = image1;
            Images1.Add((Image)Booster_pack_2.Properties.Resources.ResourceManager.GetObject(index1));
        }
        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            ResourceManager rm = Booster_pack_2.Properties.Resources.ResourceManager;
            string index2 = textBox2.Text;
            Bitmap image2 = (Bitmap)rm.GetObject(index2);
            pictureBox2.Image = image2;
            Images1.Add((Image)Booster_pack_2.Properties.Resources.ResourceManager.GetObject(index2));
        }
        private void textBox3_TextChanged(object sender, EventArgs e)
        {
            ResourceManager rm = Booster_pack_2.Properties.Resources.ResourceManager;
            string index3 = textBox3.Text;
            Bitmap image3 = (Bitmap)rm.GetObject(index3);
            pictureBox3.Image = image3;
            Images1.Add((Image)Booster_pack_2.Properties.Resources.ResourceManager.GetObject(index3));
        }
   }
}

1 个答案:

答案 0 :(得分:3)

将其置于适当的范围内。如果您需要在所有事件处理程序中访问它,请将其设为类成员:

namespace Booster_pack_2
{
public partial class Form3 : Form
{
    List<Image> Images1;
    public Form3()
    {
        InitializeComponent();
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
        Images1 = new List<Image>();
        ResourceManager rm = Booster_pack_2.Properties.Resources.ResourceManager;
       string index1 = textBox1.Text;
        Bitmap image1 = (Bitmap)rm.GetObject(index1);
        pictureBox1.Image = image1;
        Images1.Add((Image)Booster_pack_2.Properties.Resources.ResourceManager.GetObject(index1));
    }
    private void textBox2_TextChanged(object sender, EventArgs e)
    {
        ResourceManager rm = Booster_pack_2.Properties.Resources.ResourceManager;
        string index2 = textBox2.Text;
        Bitmap image2 = (Bitmap)rm.GetObject(index2);
        pictureBox2.Image = image2;
        Images1.Add((Image)Booster_pack_2.Properties.Resources.ResourceManager.GetObject(index2));
    }
    private void textBox3_TextChanged(object sender, EventArgs e)
    {
        ResourceManager rm = Booster_pack_2.Properties.Resources.ResourceManager;
        string index3 = textBox3.Text;
        Bitmap image3 = (Bitmap)rm.GetObject(index3);
        pictureBox3.Image = image3;
        Images1.Add((Image)Booster_pack_2.Properties.Resources.ResourceManager.GetObject(index3));
    }

} }

我建议移动这一行:Images1 = new List(); 改为构造函数,以防万一textBox1没有被编辑。