質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

Q&A

1回答

22836閲覧

picturebox で画像を表示したいのですが、' System.ArgumentException: '使用されたパラメーターが有効ではありません。' と出てしまいます

kinkinkin

総合スコア10

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

0グッド

0クリップ

投稿2019/01/24 13:20

まず初めに,プログラミングを始めたばかりでわからないことだらけに加え,このサイトを使用するのも初めてのため,拙いところが多々あると思いますがよろしくお願いします.

pictureboxを用いて画像を表示しようとしたところ,実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

System.ArgumentException: '使用されたパラメーターが有効ではありません。

該当のソースコード

c#

1pictureBox2.Image = bmp; 2のところです。 3 4public partial class Form1 : Form 5 { 6 Bitmap bmp = Properties.Resources.ホットドッグ1; 7 int[] areA; 8 int[] areB; 9 int[] areC; 10 int[,] ARE = new int[3, 3] { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }; 11 12 int omu = 0; 13 int kare = 0; 14 int hanba = 0; 15 16 public Form1() 17 { 18 InitializeComponent(); 19 } 20 21 private void checkBox1_CheckedChanged(object sender, EventArgs e) 22 { 23 if (checkBox1.Checked == true) 24 { 25 areA = new int[3] { 1, 1, 0 }; 26 for(int x = 0; x < 3; x++) 27 { 28 ARE[x, 0] = areA[x]; 29 } 30 } 31 } 32 33 private void checkBox2_CheckedChanged(object sender, EventArgs e) 34 { 35 if (checkBox1.Checked == true) 36 { 37 areB = new int[3] { 0, 1, 0 }; 38 for (int x = 0; x < 3; x++) 39 { 40 ARE[x, 1] = areB[x]; 41 } 42 } 43 } 44 45 private void checkBox3_CheckedChanged(object sender, EventArgs e) 46 { 47 if (checkBox1.Checked == true) 48 { 49 areC = new int[3] { 0, 1, 1 }; 50 for (int x = 0; x < 3; x++) 51 { 52 ARE[x, 2] = areC[x]; 53 } 54 } 55 } 56 57 private void button1_Click(object sender, EventArgs e) 58 { 59 for(int y = 0; y < 3; y++) 60 { 61 if (ARE[0, y] == 1) 62 { 63 omu++; 64 } 65 if (ARE[1, y] == 1) 66 { 67 kare++; 68 } 69 if (ARE[2, y] == 1) 70 { 71 hanba++; 72 } 73 } 74 75 if (omu >= 1) 76 { 77 if (pictureBox1.Image != null) 78 { 79 pictureBox1.Image.Dispose(); 80 pictureBox1.Image = null; 81 } 82 } 83 if (checkBox1.Checked != true) 84 { 85 pictureBox1.Image = bmp; 86 } 87 88 if (kare >= 1) 89 { 90 if (pictureBox2.Image != null) 91 { 92 pictureBox2.Image.Dispose(); 93 pictureBox2.Image = null; 94 } 95 } 96 if (checkBox2.Checked != true) 97 { 98 pictureBox2.Image = bmp; 99 } 100 101 if (hanba >= 1) 102 { 103 if (pictureBox3.Image != null) 104 { 105 pictureBox3.Image.Dispose(); 106 pictureBox3.Image = null; 107 } 108 } 109 if (checkBox3.Checked != true) 110 { 111 pictureBox3.Image = bmp; 112 } 113 114 115 } 116 } 117} 118

試したこと

試し方が分かりません

やりたい事

例えばcheckboxをアレルギーの一覧だとして、そのアレルギーが含まれている商品(画像)を表示しなくしようとしています
配列の要素を1,0にして,1のあるものを表示しない

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wwbQzhMkhhgEmhU

2019/01/24 16:32

やりたいことには興味がないので、まずは試し方を勉強してください。 その中で分からない具体的なことを聞いてくれればヒントくらいは出せるかもしれませんよ。 ただし、1ページに質問は1つだけにして頂き、回答がない場合は必ず自分で書いてから次の質問をしてください。
kinkinkin

2019/01/24 16:35

すいません。 次回から気をつけます わざわざコメントくださりありがとうございました!
guest

回答1

0

「使用されたパラメーターが有効ではありません。」の例外が出るとき、変数bmpはすでにDisposeされていませんか?
例えば、

C#

1 if (pictureBox1.Image != null) 2 { 3 pictureBox1.Image.Dispose(); 4 pictureBox1.Image = null; 5 }

のようなコードがありますが、前にpictureBox1.Imageにbmpが割り当てられているのだとすると、これをこのまま実行するとbmp.Dispose();と同じことをやっています。
bmpのDispose要否はともかく、試しにpictureBox1.Image.Dispose();をコメントアウトしてみてはどうでしょう(他の似たような箇所も同様)。

投稿2019/01/25 06:01

編集2019/01/25 06:03
kenshirou

総合スコア772

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問