我正在設計一個基於靜態圖像的小型交互式室內地圖,並使用gif在它們之間轉換,以模擬3D運動。圖片和gif包含在圖片框中。表單使用按鈕來觸發根據位置持有特定圖像文件的圖片框。基本上每個picturebox都是一面牆,或者用來模仿gif的移動。如何將C#中存儲在類中的圖像文件調用到我的表單中?
現在我能得到這個工作完全使用該按鈕的Click事件中下面的代碼在我的主要形式有:
pboxSCREEN.Image = new Bitmap(Path.Combine(Environment.CurrentDirectory, @"Resources\start2.jpg"));
不過,我想用單獨類來保存所有圖像文件在變量中,並在我的主表單中使用按鈕的click事件中的方法調用來獲取我需要顯示的圖像。這個想法是爲了讓單獨的類存儲我需要在主窗體中調用的「牆」。到目前爲止,這是我在單獨的類:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
namespace TheEldritchTruth
{
public class WallCollection
{
public Image img1 = null;
public WallCollection()
{
img1 = new Bitmap(Path.Combine(Environment.CurrentDirectory, @"Resources\resident.gif"));
}
public Image Img1
{
get { return img1; }
set { img1 = value; }
}
}
}
我設置一個變量通過此舉辦形式類:
public WallCollection walls;
和初始化工作在Load事件中:
WallCollection walls = new WallCollection();
我的問題是 - 我怎樣才能從單獨的類中調用方法但是噸的點擊事件?我試過,沒有運氣幾種不同的方式,到目前爲止,我有這樣的事情:
//FORWARD btn
public async void btnForward_Click(object sender, EventArgs e)
{
if (pos == 0)
{
pboxSCREEN.Visible = true;
pboxSCREEN.Image = walls.Img1;
//pBoxItem.Visible = false;
pos = 1;
}
}
我不能讓你的圖像通過使用這種邏輯來顯示和得到這個錯誤:
"Object reference not set to an instance of an object."