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回まで
  • 13歳以上
  • 登録:2016/08/26 18:00:30
  • 終了:2016/09/02 18:05:03

回答(2件)

id:degucho No.1

degucho回答回数245ベストアンサー獲得回数622016/08/26 19:34:02

ポイント50pt

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

id:wakwak_koba No.2

こばさん回答回数97ベストアンサー獲得回数132016/09/02 14:08:34

ポイント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];
        }
    }

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません