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

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

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

画像ファイルをPictureBoxに表示する方法

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

■103592 / inTopicNo.1)  画像ファイルを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' のメンバーではありません。

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

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



引用返信 編集キー/
■103593 / inTopicNo.2)  Re[1]: 画像ファイルをPictureBoxに表示する方法
□投稿者/ WebSurfer (2942回)-(2025/03/12(Wed) 06:45:05)
No103592 (タコだ さん) に返信
> .NET8のVB.NETで画像ファイルをPictureBoxに表示

Windows OS の GDI+ グラフィックス機能を利用してます?
引用返信 編集キー/
■103594 / inTopicNo.3)  Re[2]: 画像ファイルをPictureBoxに表示する方法
□投稿者/ WebSurfer (2943回)-(2025/03/12(Wed) 06:51:24)
追記

エラー BC30456 は GDI+ グラフィックス機能とは違う問題のようではありますが・・・
引用返信 編集キー/
■103598 / inTopicNo.4)  Re[3]: 画像ファイルをPictureBoxに表示する方法
□投稿者/ タコだ (2回)-(2025/03/15(Sat) 22:30:52)
No103594 (WebSurfer さん) に返信

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

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

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


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


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

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

引用返信 編集キー/
■103601 / inTopicNo.7)  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+ グラフィックス機能を利用してます?」に答えませんか?
引用返信 編集キー/
■103602 / inTopicNo.8)  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 のデザイナが対応してない
とか、乗り越えなければならない壁がいくつもあります。
引用返信 編集キー/
■103603 / inTopicNo.9)  Re[1]: 画像ファイルをPictureBoxに表示する方法
□投稿者/ WebSurfer (2946回)-(2025/03/16(Sun) 12:15:48)
No103592 (タコだ さん) に返信

ひょっとして、

タコだ = カフェ = tako

・・・同一人物?

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

利用方法/規約:
一貫して同じハンドルを使用し、場を混乱させないようにしましょう。同じハンドル
の方が質問の背景がわかりやすいです (自作自演をしたり別人を装うのは回答者の善
意を裏切る行為です)。
引用返信 編集キー/
■103604 / inTopicNo.10)  Re[3]: 画像ファイルをPictureBoxに表示する方法
□投稿者/ KOZ (483回)-(2025/03/17(Mon) 00:55:33)
No103600 (タコだ さん) に返信
> >簡単かつ確実なのは PictureBox の Image プロパティにあるボタンを押してダイアログを表示し、
> 画像ファイルをインポートすることではないでしょうか。
> これも試しているですがやはり同じエラーが発生してしまいます。
> プロジェクトが壊れているのでしょうか?

Visual Studio 2022 をお使いかと思いますが、更新をしていますか?
インストールしたままの状態だと結構不具合があったので Visual Studio Installer から更新してみてください。
引用返信 編集キー/
■103605 / inTopicNo.11)  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

引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ