DOBON.NETプログラミング道掲示板

[ 最新記事及び返信フォームをトピックトップへ ]

■34924 / inTopicNo.1)  PictureBoxに動的に画像を表示する
  
□投稿者/ 水城さやか 一般人(1回)-(2021/09/20(Mon) 20:43:16)
  • アイコン環境/言語:[Win10 vb.net ] 
    分類:[.NET] 

    まだ始めて2カ月の初心者質問で申し訳ありません。

    vb で PictureBox 1〜30 をつくりました。
    (本当はコードで作成できるのでしょうが・・・)

    そこに1〜5 のランダムな画像(test1.png , test2.png ・・・ test5.png )を表示したいのですが
    なかなか表示出来ません。 PictureBox の連番の指定方法がまちがっているのでしようか?

    1回目 [ PictureBox1 ]
    2回目 [ PictureBox2 ]
    3回目 [ PictureBox3 ]
    4回目 [ PictureBox4 ]
    ・    ・
    ・    ・
    ・    ・

    プログラムはこんな感じです

    dim i , A1 as integer

    For i = 1 To 30

    A1 = GetNum(1, 10)

    Me.Controls("label" & CStr(i)).Text = i & "個目"

    Me.Controls("PictureBox" & CStr(i)).Image = "C:\test" & CStr(A1) &".png"

    Next

    以下の部分が Image は Control のメンバーではありませんと
    エラーがでます

    Me.Controls("PictureBox" & CStr(i)).Image = "C:\test" & CStr(A1) &".png"

    どゆことなのかイマイチ解りません。
    何かキャストするとイイヨて、聞きましたが
    全くわかりませんでした。

    どこをどぉすればいいのでしょうか?
マルチポストを報告
違反を報告
引用返信 削除キー/
■34925 / inTopicNo.2)  Re[1]: PictureBoxに動的に画像を表示する
□投稿者/ 魔界の仮面弁士 大御所(1401回)-(2021/09/21(Tue) 02:51:31)
  • アイコンNo34924に返信(水城さやかさんの記事)
    > dim i , A1 as integer
    > For i = 1 To 30
    ループカウンタ変数(この場合は i As Integer)を
    事前に Dim 宣言するその書き方は、VBA や VB.NET 2002 時代の
    古い書き方です。現在はその書き方は推奨されていません。


    事前に Dim i As Integer を用意することなく、
     For i As Integer = 1 To 30
    または単に
     For i = 1 To 30
    と書くことが望ましいです。

    2003 以降は前者、2008 以降は後者が一般的です。
    2002 の場合にのみ、For より前にて明示的な変数宣言(Dim)が必要です。

    For ループの変数を、Dim などで別途宣言する記法は、
    変数のスコープが不用意に拡大されてしまうため避けましょう。
    https://atmarkit.itmedia.co.jp/fdotnet/special/vs2003/vs2003_04.html


    > Me.Controls("PictureBox" & CStr(i)).Image = "C:\test" & CStr(A1) &".png"

    Image プロパティに文字列をセットすることはできません。
    このプロパティは「Image 型」のデータを必要とするものです。

    代わりに、下記のようにします。


    (案1) ImageLocation プロパティを使ってファイルパスを指定する方法
    (案2) Image プロパティに、「Image.FromFile メソッド」で取得した Image 型のオブジェクトを渡す方法

    https://dobon.net/vb/dotnet/graphics/pictureboximage.html
違反を報告
引用返信 削除キー/



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

このトピックに書きこむ

Mode/  Pass/


- Child Tree -