VS2015 C#について教えてください。以下でBitmap[] bmp = new Bitmap[300]と宣言しています。このbmp変数はform2,form3という別フォームでも参照したいです。

どのようにすればいいでしょうか? calss Form1の外側で宣言する場合、エラーとなります。


public partial class Form1 : Form {
string[] files = System.IO.Directory.GetFiles("C:\\test", "*", System.IO.SearchOption.AllDirectories);
Bitmap[] bmp =new Bitmap[300];
private void Form1_Load(object sender, EventArgs e) {
for(int i = 0; i < files.Length-1; i++) {
bmp[i] = new Bitmap("c:\\dummy.jpg");
........

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2016/09/02 18:05:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:degucho No.1

回答回数281ベストアンサー獲得回数75

ポイント50pt

http://home.a00.itscom.net/hatada/csharp/global01.html
あまり好まれませんが、static classのpublicメンバーで持つことで
グローバル変数になりますが
一般的には画像管理クラスを作成してインデックスを渡すと画像を返すような作りにするかと思います

id:wakwak_koba No.2

回答回数106ベストアンサー獲得回数14

ポイント50pt

大ざっぱにやる場合

    public partial class Form1 : Form
    {
        string[] files = System.IO.Directory.GetFiles("C:\\test", "*", System.IO.SearchOption.AllDirectories);
        public Bitmap[] bmp = new Bitmap[300];

        private void Form1_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < files.Length - 1; i++)
            {
                bmp[i] = new System.Drawing.Bitmap("c:\\dummy.jpg");
            }
        }
    }

もうちょっとマシな方法

    public partial class Form1 : Form
    {
        string[] files = System.IO.Directory.GetFiles("C:\\test", "*", System.IO.SearchOption.AllDirectories);
        Bitmap[] bmp = new Bitmap[300];

        private void Form1_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < files.Length - 1; i++)
            {
                bmp[i] = new System.Drawing.Bitmap("c:\\dummy.jpg");
            }
        }

        public Bitmap get_bmp(int idx)
        {
            return bmp[idx];
        }
    }

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません