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

わんくま同盟

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

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

ツリー一括表示

画像ファイルをPictureBoxに表示する方法 /タコだ (25/03/11(Tue) 22:46) #103592
Re[1]: 画像ファイルをPictureBoxに表示する方法 /WebSurfer (25/03/12(Wed) 06:45) #103593
│└ Re[2]: 画像ファイルをPictureBoxに表示する方法 /WebSurfer (25/03/12(Wed) 06:51) #103594
│  └ Re[3]: 画像ファイルをPictureBoxに表示する方法 /タコだ (25/03/15(Sat) 22:30) #103598
│    └ Re[4]: 画像ファイルをPictureBoxに表示する方法 /WebSurfer (25/03/16(Sun) 10:55) #103601
Re[1]: 画像ファイルをPictureBoxに表示する方法 /KOZ (25/03/16(Sun) 04:00) #103599
│└ Re[2]: 画像ファイルをPictureBoxに表示する方法 /タコだ (25/03/16(Sun) 10:52) #103600
│  ├ Re[3]: 画像ファイルをPictureBoxに表示する方法 /KOZ (25/03/17(Mon) 00:55) #103604
│  └ Re[3]: 画像ファイルをPictureBoxに表示する方法 /kiku (25/03/24(Mon) 11:23) #103605
Re[1]: 画像ファイルをPictureBoxに表示する方法 /WebSurfer (25/03/16(Sun) 12:09) #103602
Re[1]: 画像ファイルをPictureBoxに表示する方法 /WebSurfer (25/03/16(Sun) 12:15) #103603
  └ Re[2]: 画像ファイルをPictureBoxに表示する方法 /タコだ (25/03/25(Tue) 22:35) #103606 解決済み


親記事 / ▼[ 103593 ] ▼[ 103599 ] ▼[ 103602 ] ▼[ 103603 ]
■103592 / 親階層)  画像ファイルをPictureBoxに表示する方法
□投稿者/ タコだ (1回)-(2025/03/11(Tue) 22:46:47)

分類:[.NET 全般] 

2025/03/12(Wed) 10:24:28 編集(投稿者)

.NET8のVB.NETで画像ファイルをPictureBoxに表示したいのですが
うまくいきません。

.NET Frameworkだと画像ファイルをプロジェクトにインポートして、
ビルドアクションを埋め込みリソースに変更し、
PictureBoxのプロパティのImageで埋め込んだリソースを選択するだけで
画像を表示することができました。


一方で、.NET8で同じ操作を行うと
GUI上では、PictureBoxにその画像が表示されます。
しかし、ビルドしようとすると
Form01.Designer.vb
の以下の箇所で

PictureBox1.Image = WindowsApplication1.UserControl1.ImageFile

BC30456 'UserControl1' は 'WindowsApplication1' のメンバーではありません。

というエラーが発生してしまい、ビルドが失敗してしまいます。

どうすれば、画像を埋め込んだ状態でビルドすることができますか?



[ □ Tree ] 返信 編集キー/

▲[ 103592 ] / ▼[ 103594 ]
■103593 / 1階層)  Re[1]: 画像ファイルをPictureBoxに表示する方法
□投稿者/ WebSurfer (2942回)-(2025/03/12(Wed) 06:45:05)
No103592 (タコだ さん) に返信
> .NET8のVB.NETで画像ファイルをPictureBoxに表示

Windows OS の GDI+ グラフィックス機能を利用してます?
[ 親 103592 / □ Tree ] 返信 編集キー/

▲[ 103593 ] / ▼[ 103598 ]
■103594 / 2階層)  Re[2]: 画像ファイルをPictureBoxに表示する方法
□投稿者/ WebSurfer (2943回)-(2025/03/12(Wed) 06:51:24)
追記

エラー BC30456 は GDI+ グラフィックス機能とは違う問題のようではありますが・・・
[ 親 103592 / □ Tree ] 返信 編集キー/

▲[ 103594 ] / ▼[ 103601 ]
■103598 / 3階層)  Re[3]: 画像ファイルをPictureBoxに表示する方法
□投稿者/ タコだ (2回)-(2025/03/15(Sat) 22:30:52)
No103594 (WebSurfer さん) に返信

ありがとうございます。
どなたか解決策をご存じないでしょうか?

[ 親 103592 / □ Tree ] 返信 編集キー/

▲[ 103598 ] / 返信無し
■103601 / 4階層)  Re[4]: 画像ファイルをPictureBoxに表示する方法
□投稿者/ WebSurfer (2944回)-(2025/03/16(Sun) 10:55:16)
No103598 (タコだ さん) に返信
> ■No103594 (WebSurfer さん) に返信
>
> ありがとうございます。
> どなたか解決策をご存じないでしょうか?

私の質問「Windows OS の GDI+ グラフィックス機能を利用してます?」に答えませんか?

意味なく聞いているわけではないのです。

Microsoft のドキュメントに、

System.Drawing.Common が Windows でしかサポートされない
https://learn.microsoft.com/ja-jp/dotnet/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only

"System.Drawing.Common NuGet パッケージは、Windows 固有のライブラリとして属性
付けされるようになりました。 Windows 以外のオペレーティング システム用にコン
パイルすると、コンパイル時にプラットフォーム アナライザーから警告が生成されます。"

・・・とあります。

Visual Studio 2022 のテンプレートを使って .NET 8.0 の Windows Forms プロジェクト
を作成し、そのプロジェクトの中で画像の生成・処理を行っていれば問題はありませんが、
例えば別のプロジェクトとしてクラスライブラリを作って、そのクラスライブラリの中で
画像の生成・処理を行っていると、例えば以下の Microsoft のドキュメントのサンプル
コードのような簡単な例でも System.Drawing.Common を NuGet でインストールしてない
と Bitmap, Graphics, Brushes でエラーになるのです。

PictureBox.Image Property
https://learn.microsoft.com/ja-jp/dotnet/api/system.windows.forms.picturebox.image?view=windowsdesktop-8.0#system-windows-forms-picturebox-image

そこがエラー BC30456 とどうつながるかは分かりませんが、とにかく「Windows OS の
GDI+ グラフィックス機能を利用してます?」に答えませんか?
[ 親 103592 / □ Tree ] 返信 編集キー/

▲[ 103592 ] / ▼[ 103600 ]
■103599 / 1階層)  Re[1]: 画像ファイルをPictureBoxに表示する方法
□投稿者/ KOZ (482回)-(2025/03/16(Sun) 04:00:13)
> .NET Frameworkだと画像ファイルをプロジェクトにインポートして、
> ビルドアクションを埋め込みリソースに変更し、
> PictureBoxのプロパティのImageで埋め込んだリソースを選択するだけで
> 画像を表示することができました。

「プロジェクトにインポートして」の意味がわからないですが、プロジェクトに組み込んで
埋め込みリソースにした場合は、Assembly.GetManifestResourceStream で読み出すコードを
書かなければならなかったと思います。


簡単かつ確実なのは PictureBox の Image プロパティにあるボタンを押してダイアログを表示し、
画像ファイルをインポートすることではないでしょうか。


[ 親 103592 / □ Tree ] 返信 編集キー/

▲[ 103599 ] / ▼[ 103604 ] ▼[ 103605 ]
■103600 / 2階層)  Re[2]: 画像ファイルをPictureBoxに表示する方法
□投稿者/ タコだ (3回)-(2025/03/16(Sun) 10:52:22)
>簡単かつ確実なのは PictureBox の Image プロパティにあるボタンを押してダイアログを表示し、
画像ファイルをインポートすることではないでしょうか。

これも試しているですがやはり同じエラーが発生してしまいます。
プロジェクトが壊れているのでしょうか?

[ 親 103592 / □ Tree ] 返信 編集キー/

▲[ 103600 ] / 返信無し
■103604 / 3階層)  Re[3]: 画像ファイルをPictureBoxに表示する方法
□投稿者/ KOZ (483回)-(2025/03/17(Mon) 00:55:33)
No103600 (タコだ さん) に返信
> >簡単かつ確実なのは PictureBox の Image プロパティにあるボタンを押してダイアログを表示し、
> 画像ファイルをインポートすることではないでしょうか。
> これも試しているですがやはり同じエラーが発生してしまいます。
> プロジェクトが壊れているのでしょうか?

Visual Studio 2022 をお使いかと思いますが、更新をしていますか?
インストールしたままの状態だと結構不具合があったので Visual Studio Installer から更新してみてください。
[ 親 103592 / □ Tree ] 返信 編集キー/

▲[ 103600 ] / 返信無し
■103605 / 3階層)  Re[3]: 画像ファイルをPictureBoxに表示する方法
□投稿者/ kiku (465回)-(2025/03/24(Mon) 11:23:21)
No103600 (タコだ さん) に返信
> >簡単かつ確実なのは PictureBox の Image プロパティにあるボタンを押してダイアログを表示し、
> 画像ファイルをインポートすることではないでしょうか。
>
> これも試しているですがやはり同じエラーが発生してしまいます。
> プロジェクトが壊れているのでしょうか?

試していないので、有用かどうかわかりませんが、
下記のことと関連があれば、解決できるかもしれません。
VisualStudioのバージョンの話や、旧デザイナを利用する方法が書かれています。

https://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=35652&rev=&no=0

[ 親 103592 / □ Tree ] 返信 編集キー/

▲[ 103592 ] / 返信無し
■103602 / 1階層)  Re[1]: 画像ファイルをPictureBoxに表示する方法
□投稿者/ WebSurfer (2945回)-(2025/03/16(Sun) 12:09:07)
No103592 (タコだ さん) に返信
> 2025/03/12(Wed) 10:24:28 編集(投稿者)
>
> .NET8のVB.NETで画像ファイルをPictureBoxに表示したいのですが

なぜ .NET 8.0 で Windows Forms アプリを作りたいのか分かりませんが、サポート期間の
長さを気にしてということなら、.NET 8.0 の 2026年 11 月 10 日より (.NET 9.0 はそれ
より短い 2026 年 5 月 12 日)、 .NET Framework 4.8.1 の「サポートされているバージ
ョンの Windows にインストールされている限り」の方が長いはずです。

Microsoft .NET および .NET Core
https://learn.microsoft.com/ja-jp/lifecycle/products/microsoft-net-and-net-core

.NET Framework サポート ポリシー
https://dotnet.microsoft.com/ja-jp/platform/support/policy/dotnet-framework

なので、.NET の新機能を利用したいなどの理由がない限り、ターゲットフレームワークは
,NET Framework 4.8 / 4.8.1 で作った方が良さそうです。

フレームワークを .NET とした場合、.NET Framework からの破壊的変更があるとか (コン
トロールが多数削除されているなど)、特定の OS に依存する機能は Visual Studio のテ
ンプレートで作るプロジェクトには含まれてないとか (例: GDI+ に依存するグラフィック
ス機能、エンコーディングの Shift_JIS)、ReportViewer や Chart が使えないとか、
データソース構成ウィザードが使えないとか、Visual Studio のデザイナが対応してない
とか、乗り越えなければならない壁がいくつもあります。
[ 親 103592 / □ Tree ] 返信 編集キー/

▲[ 103592 ] / ▼[ 103606 ]
■103603 / 1階層)  Re[1]: 画像ファイルをPictureBoxに表示する方法
□投稿者/ WebSurfer (2946回)-(2025/03/16(Sun) 12:15:48)
No103592 (タコだ さん) に返信

ひょっとして、

タコだ = カフェ = tako

・・・同一人物?

もしそうであれば利用規約に従ってください。

利用方法/規約:
一貫して同じハンドルを使用し、場を混乱させないようにしましょう。同じハンドル
の方が質問の背景がわかりやすいです (自作自演をしたり別人を装うのは回答者の善
意を裏切る行為です)。
[ 親 103592 / □ Tree ] 返信 編集キー/

▲[ 103603 ] / 返信無し
■103606 / 2階層)  Re[2]: 画像ファイルをPictureBoxに表示する方法
□投稿者/ タコだ (4回)-(2025/03/25(Tue) 22:35:43)
ありがとうございます。

色々と試してみましたが、やはり.NET8の仕様であることが分かりました。
新規プロジェクトから試してみてもやはり駄目でした。
System.Drawing.Common を NuGet でインストールしてもやはり駄目でした。

PictureBox の Image プロパティからであればインポートできることが確認できました。

どうもお騒がせしました。


解決済み
[ 親 103592 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -