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

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

新規登録して質問してみよう
ただいま回答率
85.35%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

3257閲覧

連番を持ったコントロールをfor文で指定したい

hanbee.com

総合スコア52

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

1クリップ

投稿2020/09/26 06:37

再度質問となり、直前に回答されていた方には申し訳ありません
表題の通り、連番を持ったコントロール(Picturebox1,2,3,・・・)をfor文で指定し、それぞれのプロパティに異なった値を代入したいと思っています。

VB.NET

1for i = 1 to 100 2 PictureBox{CStr(i)}.ImageLocation = sResult 3Next

これではうまく行かないのですが、どうしたら良いのでしょうか。教えていただけたらと思います。

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

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

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

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

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

YAmaGNZ

2020/09/26 06:41

先ほどの質問のソースでPictureBoxにキャストするだけだったのですが・・・
hanbee.com

2020/09/26 06:42

削除してしまい、大変すみません。 PictureBoxにキャストするとはどういうことなのでしょうか?
hanbee.com

2020/09/26 06:50

先程は Me.Controls("PictureBox" & CStr(i)).ImageLocation = sResult というコードを入れていました。 しかし、ImageLocationはcontrolのメンバーではありませんとエラーになっていました。
guest

回答1

0

ベストアンサー

Me.Contros("PictureBox1")で返ってくるのは実体がPictureBoxなのですが、型としてはControlクラスとなります。
なので、DirectCast演算子TryCast演算子等を使用してPictureBoxにキャストする必要があります。

というのが消された質問に回答しようとした内容になります。

投稿2020/09/26 06:50

YAmaGNZ

総合スコア10489

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

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

hanbee.com

2020/09/26 06:54

削除してしまった自分が大変不甲斐ないです。 なるほど。型はcontrolクラスだからその演算子を使ってpictureboxクラスにかえればいいんですね。 どのようにキャストすればいいんでしょうか。自分でも考えてみます。調べてみます。
YAmaGNZ

2020/09/26 06:58

回答にあるリンク(リファレンス)に例がありますので参考にしてください。
hanbee.com

2020/09/26 07:09

Dim p As System.Windows.Forms.PictureBox p = DirectCast(Me.Controls("PictureBox" & CStr(i), System.Windows.Forms.PictureBox) p = sResult こんなかんじで作ってみたのですが、うまくいきません。 どうしたらよいのでしょうか?
hanbee.com

2020/09/26 07:11

Dim p As System.Windows.Forms.PictureBox p = DirectCast(Me.Controls("PictureBox" & CStr(i)), System.Windows.Forms.PictureBox) p.ImageLocation = sResult
hanbee.com

2020/09/26 07:21

こう書いてみましたが、なぜかこれでは代入されていません。
YAmaGNZ

2020/09/26 07:21

質問する場合はなるべく「うまくいきません」の言葉のみはやめるようにしましょう。 「こういうエラーが出る」とか具体的に書くようにしてください。 16:11のコメントのソースは当方では正常に動作しますので、「うまくいかない」と言われても分かりません。
YAmaGNZ

2020/09/26 07:22

「代入されていません」とは「何に」「何が」代入されないのでしょうか?
hanbee.com

2020/09/26 07:33

失礼しました。 PictureBox.ImageLocationにそのモノの写真のアドレスを代入しようとしているのですが、 デバックしてみたところpictureboxに写真が表示されていないので、代入されていないのかな? と思ってしまっています。 もうちょっと他のところでおかしいことになっていないか確認していきます。
hanbee.com

2020/09/26 07:40

どうやら代入はされているようですが、フォームに画像として表示していないようです。 p.ImageLocationにアドレスを代入すればうまくいくと思っていましたが、これは実際の PictureBoxに代入したことにはならないのでしょうか。
hanbee.com

2020/09/26 07:41

全く失礼しました できていました
hanbee.com

2020/09/26 07:43

pictureboxのサイズボックスがNormalになっていて、拡大された画像が表示されていて、一色になっていたので、表示されていないと誤認しておりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問