【问题标题】:How to dynamically assign a wmf file to a picturebox如何将 wmf 文件动态分配给图片框
【发布时间】:2021-07-25 01:54:25
【问题描述】:

我有一个使用 100 个 .wmf 文件的 VB6 遗留系统 我现在正在使用 Visual Studio 2019 VB.NET 创建相同的应用程序 我在将图片框从默认的 .wmf 文件动态更改为新文件时遇到问题。 我已经测试了代码以毫无问题地更改为 .jpg 图像。 (参见下面的代码 - 输出替换原始 .wmf 图像,然后在空白和 .jpg 图像之间切换)

Static Toggle As Boolean
Dim FName As String = ""
If Toggle Then
    FName = "D:\VB6\06ST.jpg"
Else
    FName = "D:\VB6\06ST.wmf"
End If
Toggle = Not Toggle
PictureBox1.Image = Image.FromFile(FName)

有没有办法解决这个问题?

【问题讨论】:

  • 不要一遍又一遍地从同一个文件中创建 Image 对象,也不要丢弃它们。只需在开始时创建两个 Image 对象,根据需要在它们之间切换,然后在完成后处理它们。
  • 查看文档docs.microsoft.com/en-us/dotnet/api/… 我学到了 2 个有趣的东西。第一个 .wmf 不受支持,第二个“文件保持锁定直到图像被释放。”
  • 我会尝试两件事。使用元文件子类/构造函数,如果这仍然导致中断,请删除 .wmfs 的可放置标头(= 前 22 个字节)。

标签: vb.net picturebox wmf


【解决方案1】:

移动这一行:

Toggle = Not Toggle

进入 else 条件。

要么这样,要么我不明白这个问题。

【讨论】:

  • 谢谢 - 切换操作正确,问题是图片框将仅显示 .jpg 文件并在为 .wmf 文件执行代码时变为空白(即使初始图像设置为.wmf 文件在表单设计器中显示正确)
猜你喜欢
  • 2014-12-27
  • 1970-01-01
  • 1970-01-01
  • 2013-01-15
  • 1970-01-01
  • 2011-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多