C# フォームでは、一度呼び出されると、目的の画像、サイズ、場所でピクチャ ボックスを作成する関数を作成しました。
private void NewPic(string nName, int locX, int locY, int SizX, int SizY, Image Img)
{
PictureBox Pic = new PictureBox();
Pic.Name = nName; Pic.Image = Img;
Pic.BackColor = Color.Transparent;
Pic.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
Pic.Size = new System.Drawing.Size(SizX, SizY);
Pic.Location = new System.Drawing.Point(locX, locY);
Controls.Add(Pic);
Pic.Click += new EventHandler(Pic_Click);
}
写真が必要なときは、次のようにします。
NewPic("FIRE", 32, 100, 120, 120, Properties.Resources.Image);
問題は、クリックイベントで、ピクチャボックスをクリックすると背景画像を変更したいのですが、他のピクチャボックスをクリックすると、最後のピクチャボックスでそれをリセットすることです:
private void Pic_Click(object sender, System.EventArgs e)
{
PictureBox pb = (PictureBox)sender;
switch (pb.Name)
{
case "1":
pb.BackgroundImage = Properties.Resources.OtherImg; //creates the background
pb.BackgroundImageLayout = ImageLayout.Stretch;
//INSERT CODE HERE: to remove from other if it has
break;
case "2":
pb.BackgroundImage = Properties.Resources.OtherImg; //creates the background
pb.BackgroundImageLayout = ImageLayout.Stretch;
//INSERT CODE HERE: to remove from other if it has
break;
}
}
2 つだけでなく、複数のピクチャボックス/オブジェクトに適用できるコードが必要です