我正在尝试加载图像图标在不脆弱的超翼。为此,我试图对行进行非分类,并根据条件加载相应的图像。
但是当我尝试使用Image.FromFile()时,我的性能非常慢
请建议如何修复更快的网格加载。
Private Sub ugMain_InitializeRow(sender As Object, e As InitializeRowEventArgs) Handles ugMain.InitializeRow
If e.Row.Cells("Delays").Value = 0 Then
e.Row.Cells("Indicator").Value = Image.FromFile("Images\\RoundedGreen.png")
Else
e.Row.Cells("Indicator").Value = Image.FromFile("Images\\RoundedRed.png")
End If
End Sub发布于 2016-06-27 19:19:08
Image.FromFile并不慢,但是您对每条记录调用它的方式,可能会给您带来一些性能损失。您正在调用该方法,该方法与每一行的文件系统交互。
不必从文件系统中为网格中的每一行加载这些图像,您可以使用以下任何一个选项:
List<Image>中,然后每次需要它们时,都可以从list by index (例如Images[0] )获取图像。如果您想按键访问这些图像,可以使用Plutonix中提到的Dictionary<string , Image>,然后可以使用Images["RoundedGreen"]获取图像。Resources.Resx文件在编译时存储这些图像。然后,每次需要在运行时使用这些图像时,您都可以使用My.Resources.RoundedGreen找到它们。示例
例如,可以在表单级别定义Images成员:
Dim Images As Dictionary(Of String, Image) = New Dictionary(Of String, Image)()然后在某个地方,例如在表单的Load事件中,加载图像:
Images.Add("RoundedGreen", Image.FromFile("Path to RoundedGreen image"))
Images.Add("RoundedRed", Image.FromFile("Path to RoundedRed image"))然后,在需要使用这些映像的地方,您可以通过以下方式从Images成员那里获得它们:Images("RoundedGreen")
https://stackoverflow.com/questions/38059990
复制相似问题