2

私は、画像を追加し続ける拡張可能な画像フィードを備えたプログラムを作成しようとしています。そのチャンクを噛み砕く前に、オブジェクトの上に少し余分な情報を保持するカスタム画像クラスをテストしてみようとしていpictureboxます。私が抱えている問題は、を継承する私のオブジェクト( oSlideItemas )が実行時に画像をロードしていないように見えることです。ヘルプとこのフォーラムに記載されている2つの異なる方法を試しましたが、実行時に画像を取得できないようです。を継承している私の特定の状況に言及するものは何も見つかりませんでした。clsSlideItempictureboxpicturebox

画像を読み込む前に画像の場所とサイズのプロパティを設定してみましたが、何も変更されませんでした。

ネイティブの画像ボックスオブジェクトの代わりに継承された状態で機能を使用しているため、画像ボックスの画像を開始するために必要な追加の手順はありますか?

ご覧のとおり、これらの画像保持オブジェクトもコレクションに入れています。コレクションに入れずに画像を読み込んでテストしましたが、何も変更されていないので、それが問題になるとは思いません。コレクションにオブジェクトを追加すると、コレクション内のオブジェクトとコレクション外のオブジェクトが分離されると想定しています。私はまだそのための良いテストをしていません。

Public Class clsSliders
Private clFeedItems As New Collection 'collection of all feed items
Private oFeed As New clsFeed 'feed organizer layer

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    'build Feed
    Dim oSlideItem As clsSlideItem 'feed item layer

    'make collection of slider objects
    oSlideItem = New clsSlideItem
    oSlideItem.setRank(1, oFeed)
    oSlideItem.ImageLocation = "C:\Users\nathan\Pictures\Chicago_River_from_Lake_Street_bridge.jpg"
    oSlideItem.Load()

    clFeedItems.Add(oSlideItem, 1)

    oSlideItem = New clsSlideItem
    oSlideItem.Image = Image.FromFile("C:\Users\nathan\Pictures\ReindeerPowerLines.png")
    oSlideItem.setRank(2, oFeed)

    'add to collection
    clFeedItems.Add(oSlideItem, 2)

    oSlideItem = New clsSlideItem
    oSlideItem.Image = Image.FromFile("C:\Users\nathan\Pictures\TianmenMountain.jpg")
    oSlideItem.setRank(3, oFeed)

    'add to collection
    clFeedItems.Add(oSlideItem, 3)

End Sub

'other subs and properties
End Class

と私の2番目のクラス:

Public Class clsSlideItem
Inherits PictureBox

Private iFeedRank As Integer 'current rank position

Public Sub setRank(rank As Integer, oFeed As clsFeed)
    If Not IsNothing(oFeed) Then
        Me.Left = oFeed.Left(rank)
        Me.Top = oFeed.Top(rank)
        Me.Width = oFeed.Width(rank)
        Me.Height = oFeed.Height(rank)
        iFeedRank = rank
    End If
End Sub

'other subs and properties
End Class

oFeed基本的clsFeedには、追加の機能を持たせるためにクラスとして作成した構造です。コードのその部分が機能しているため、この問題の範囲には含まれていません。この投稿を乱雑にしたくなかったので、含めませんでした。

4

1 に答える 1

1

ピクチャボックスがフォーム コントロール コレクションに追加されていないようです。これを追加

Me.Controls.Add(oSlideItem)

oSlideItem = New clsSlideItem

コントロールは、Controls コレクションに追加されるまで、フォームに表示されません (またはフォームに含まれます)。画像は問題なく読み取られていると思いますが、フォームに表示されていません。ロード後にブレークポイントを設定し、oSlideItem (Shift-F9) のプロパティを見るとわかります。

于 2013-01-31T05:22:41.323 に答える