C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: 埋め込み画像リソースを任意に選択する方法について


(過去ログ 48 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■25920 / inTopicNo.1)  埋め込み画像リソースを任意に選択する方法について
  
□投稿者/ くう (1回)-(2008/09/28(Sun) 03:59:17)

分類:[VB.NET/VB2005 以降] 

VB.NET2008で開発しています。

img001〜img500までの500枚の画像ファイルをリソースファイルに追加してあり、
1〜500までの数字が選べるComboBoxを作成し、そこで選んだ数字の画像を
PictureBoxに表示するプログラムを作成したいと思っています。

リソースの呼び出しに関しては以下のようにすれば、

PictureBox1.Image = My.Resources.img001

img001が呼び出されることはわかっているので、
ComboBoxで選択した番号情報を用いてMy.Resources以下のメンバ名を変更したいのですが、
それをどのようにソースコードを記述すれば実現できるのかが分かりません。

10個程度の選択肢ならSelect Caseとかで分けることも出来そうですが500もあるので、
何とか簡潔にソースを記述できないかと思い質問しました。

なにか良い方法がありましたら教えてください。

よろしくお願いします。
引用返信 編集キー/
■25921 / inTopicNo.2)  Re[1]: 埋め込み画像リソースを任意に選択する方法について
□投稿者/ 渋木宏明(ひどり) (899回)-(2008/09/28(Sun) 04:27:27)
渋木宏明(ひどり) さんの Web サイト
>リソースの呼び出しに関しては以下のようにすれば、
>
>PictureBox1.Image = My.Resources.img001
>
>img001が呼び出されることはわかっているので、

リソースを読み込む方法は他に通りも存在するので、それらについて調べてみては。

読み込むべきリソースを名前(=文字列)で指定することもできます。

引用返信 編集キー/
■25934 / inTopicNo.3)  Re[2]: 埋め込み画像リソースを任意に選択する方法について
□投稿者/ くう (2回)-(2008/09/28(Sun) 14:42:54)
リソースの呼び出し方法を調べなおしたところ、
外部ファイルとプロジェクトに直接埋め込んだリソースについては文字列で指定できることが分かりました。

しかし、外部リソースは文字通り外部ファイルを置かなければいけず、
プロジェクトに埋め込むリソースも他のプロジェクトに移行するさいには、同じく埋め込まなければいけないようなので
出来ることならリソースファイルに埋め込んだ形でメンバ名の変更を文字列等で対処できると良いのですが、
その方法については調べられませんでした。

もしそのような方法が可能であるなら記述方法を教えていただけると助かります。




引用返信 編集キー/
■25935 / inTopicNo.4)  Re[3]: 埋め込み画像リソースを任意に選択する方法について
□投稿者/ 渋木宏明(ひどり) (901回)-(2008/09/28(Sun) 15:08:42)
渋木宏明(ひどり) さんの Web サイト
> しかし、外部リソースは文字通り外部ファイルを置かなければいけず、
> プロジェクトに埋め込むリソースも他のプロジェクトに移行するさいには、同じく埋め込まなければいけないようなので
> 出来ることならリソースファイルに埋め込んだ形でメンバ名の変更を文字列等で対処できると良いのですが、
> その方法については調べられませんでした。

リソース画像を格納するための、専用のアセンブリ(=クラスライブラリプロジェクト)を作成して、それを元のプロジェクトで参照設定して使う、というのではダメですか?

必要なら、そのクラスライブラリの中に、リソース画像を扱う(=列挙・名前指定による取り出しなど)ためのクラスを配置してもいいんじゃないかと。
引用返信 編集キー/
■25956 / inTopicNo.5)  Re[4]: 埋め込み画像リソースを任意に選択する方法について
□投稿者/ くう (3回)-(2008/09/29(Mon) 08:04:47)
返信ありがとうございます。

どうやら私にはまだ難しそうなので、教えて頂いた様にDLLなど含めてもう一度勉強してみたいと思います。

このたびはありがとうございました。
解決済み
引用返信 編集キー/
■25963 / inTopicNo.6)  Re[5]: 埋め込み画像リソースを任意に選択する方法について
□投稿者/ 裕猫 (66回)-(2008/09/29(Mon) 10:03:50)
No25956 (くう さん) に返信
いつもみなさんにお世話になっているので恩返しに。ところでリソースに画像登録する必要ありますか?
結構登録だけで時間がかかりそうです。別のフォルダに画像を集めておいて、呼び出すようにしたらいかがでしょう?
以下に私の考えたサンプルつけておきます。これだと500の数字を変えるだけで、画像が増えても対応できますし、
他のフォームから呼ぶのも楽だと思います。
namespace test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            for (int I1 = 0; I1 <= 500; I1++)   //ここで500個コンボボックスにアイテム追加
            {
                string ss1 = "00" + I1.ToString();  //コンボボックスのアイテムの数字を作る
                int ss = ss1.Length;
                comboBox1.Items.Add(ss1.Substring(ss - 3, 3));  //コンボボックスに3桁の数字を登録
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string PIC = "G:\\背景CG\\" + comboBox1.Text + ".bmp";  //Gドライブの背景フォルダにビットマップを入れておきます。
                                                                    //ここでコンボボックスの番号の画像名をPICに作ります。
            pictureBox1.Image = Image.FromFile(PIC);    //コンボボックスで選択した番号の画像をピクチャーボックスに表示
        }
    }
}


引用返信 編集キー/
■25964 / inTopicNo.7)  Re[6]: 埋め込み画像リソースを任意に選択する方法について
□投稿者/ 裕猫 (67回)-(2008/09/29(Mon) 10:06:51)
ああすいません。これVBでしたね。コードはVC#です。こーどは似ていると思いますが。参考になれば幸いです。早とちりでごめんなさい。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -