tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルVBでフォトアルバムを作りたい><
記事No10343
投稿日: 2010/12/08(Wed) 00:25
投稿者PAO
VisualBasic2008でフォトアルバムをつくりたいと考えて得ています
ですがフォルダ内の画像をPictureBoxに表示させ
ボタンを押すことで画像が次々に代わっていく
プログラムが作れません・・・
どなたかご教授おねがいいたします><

Microsoft Visual Basic 2008 Express Edition
を使っております

[ツリー表示へ]
タイトルRe: VBでフォトアルバムを作りたい><
記事No10344
投稿日: 2010/12/08(Wed) 08:04
投稿者shu
System.IO.DirectoryInfoがフォルダ情報を表すクラスになってます
このクラスのGetFilesでそのフォルダ内のファイル一覧を取得出来ます。
ファイル一覧をリストにしておいてボタンを押すごとにPictureBoxの
Imageを切り替えると良いかと思います。

[ツリー表示へ]
タイトルRe^2: VBでフォトアルバムを作りたい><
記事No10345
投稿日: 2010/12/08(Wed) 08:19
投稿者PAO
shuさんありがとうございます
Dim files As String() = System.IO.Directory.GetFiles("C:\Users\pao\Desktop\卒研\sotuken", "*", System.IO.SearchOption.AllDirectories)
' ListBox1.Items.AddRange(files)
これをつかってフォルダ内の情報をリストボックスにだすことができるのですが
この情報からPictureboxに出すことができないです・・・orz
この場合だとどう記述すればよいでしょうか?

> System.IO.DirectoryInfoがフォルダ情報を表すクラスになってます
> このクラスのGetFilesでそのフォルダ内のファイル一覧を取得出来ます。
> ファイル一覧をリストにしておいてボタンを押すごとにPictureBoxの
> Imageを切り替えると良いかと思います。

   

[ツリー表示へ]
タイトルRe^3: VBでフォトアルバムを作りたい><
記事No10346
投稿日: 2010/12/08(Wed) 08:37
投稿者shu
ファイルをロックしてよければ
Image.FromFile("ファイル名")

ファイルをロックしたくなければ
Image.FromStream(なんらかのStream)
Imageを作成して
PictureBox.Imageに張り付ける

作成したImageは不要になったら適宜Dispose

ファイルリストはprivate変数で確保しておき
リストのindexもprivate変数で宣言ボタンクリックでindexを順次変更
ファイルリストからindex位置のファイル名を取得すればよいかと思います。

[ツリー表示へ]
タイトルRe^4: VBでフォトアルバムを作りたい><
記事No10347
投稿日: 2010/12/08(Wed) 09:30
投稿者PAO
色々なアドバイスありがとうございます(;;)

自分プログラミングに関して初心者でして
その辺のことを詳しくお聞きしてもよろしいでしょうか?

質問ばかりで本当に申し訳ありません

[ツリー表示へ]
タイトルRe^5: VBでフォトアルバムを作りたい><
記事No10348
投稿日: 2010/12/08(Wed) 09:52
投稿者shu
Image.FromFileについて
http://dobon.net/vb/dotnet/graphics/imagefromfile.html


サンプルです:

Public Class 〜
    Private m_files() as string
    Private m_intFileIdx as integer
    Private m_img as Image = nothing

    Private Sub cmdRefFolder_Click(sender 〜) handles cmdRefFolder.click
        m_files = System.IO.Directory.GetFiles(〜)
        m_intFileIdx = 0
    End Sub

    Private Sub cmdView_Click(sender 〜) Handles cmdView.Click
        Dim img as Image = Image.FromFile(m_files(m_intFileIdx))
        PictureBox1.Image = img

        m_intFileIdx += 1
        if m_intFileIdx >= m_files.length then m_intFileIdx = 0

        if m_img isnot nothing then
            m_img.Dispose
        End If
        m_img = img
    End Sub

    Private Sub Me_Disposed(ByVal sender 〜) Handles Me.Disposed
        if m_img isnot nothing then
            m_img.Dispose
        End If
    End Sub

End Class

[ツリー表示へ]
タイトルRe^6: VBでフォトアルバムを作りたい><
記事No10349
投稿日: 2010/12/08(Wed) 13:44
投稿者PAO
サンプルコードまでありがとうございます!!
とても参考になりました!!
変数のやり方がいまいちわかっていなかったのですが
このコードのおかげで理解を深めることができました!!

[ツリー表示へ]