我正在尝试编写一个程序,该程序具有可扩展的图像提要,可以随时添加图片。在我咬掉那个块之前,我只是想用一个自定义图像类进行测试,它将在picturebox
对象顶部保存一些额外的信息。我遇到的问题是我的对象(oSlideItem
as clsSlideItem
)继承了picturebox
似乎没有在运行时加载图片。我尝试了两种不同的方法,这些方法在帮助和这个论坛上都提到了,但我似乎无法在运行时获得图片。我还没有找到任何提及我继承picturebox
.
我尝试在加载图片之前设置图像位置和大小属性,没有改变任何东西。
由于我使用的是继承状态而不是本机图片框对象的功能,因此是否需要执行一些额外的步骤才能启动图片框图像?
如您所见,我还将这些图像保存对象放入一个集合中。我测试了加载图片而不将其放入集合中并且没有任何改变,所以我认为这不是问题。我假设一旦将对象添加到集合中,集合内的对象和集合外的对象就会解耦。我还没有为此做一个很好的测试。
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
我的第二堂课:
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
asclsFeed
基本上是我作为一个类编写的一个结构,这样我就可以拥有额外的功能。它实际上不在此问题的范围内,因为该部分代码正在运行。我没有包括它,因为我不想把这篇文章弄乱。