我正在尝试将已经使用过的图像添加到名为“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));
}
}
}
答案 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没有被编辑。