【问题标题】:How to populate an ImageList from a Resource File如何从资源文件中填充 ImageList
【发布时间】:2012-10-19 19:08:56
【问题描述】:

只是想知道是否有办法从资源文件中填充 ImageList。我在网上四处查看,但一切似乎都来自 2003/2005 年。

任何建议都将不胜感激。

【问题讨论】:

    标签: vb.net imagelist


    【解决方案1】:

    这是一个将资源中的所有图像读入 ImageList 的示例。

    var dynamicImageList = new ImageList();
    var resourceSet = MyResourceClass.ResourceManager.GetResourceSet(CultureInfo.InvariantCulture, true, false);
    if (resourceSet != null)
    {
       foreach (DictionaryEntry entry in resourceSet)
       {
          var value = entry.Value as Bitmap; //only get images
          if (value != null)
          {
              dynamicImageList.Images.Add((string) entry.Key, value);
          }
       }
    }
    

    【讨论】:

    • 不知道为什么我没有想到这个。像魅力一样工作!
    【解决方案2】:

    试试这个

     Private m_clsImageList as ImageList
    
    Private Sub Form_Load(ByVal sender As Object, ByVal e As EventArgs)
        m_clsImageList = New ImageList()
        m_clsImageList.Images.Add("add", My.Resources.add) 
        m_clsImageList.Images.Add("cut", My.Resources.cut) 
    End Sub
    

    resources = new ResourceManager("Icons", assemby-containing-icons.resx);
    imageList.Images.Add((Image)resources.GetObject("image-resource-name");
    

    【讨论】:

    • 抱歉,我的问题应该更具体一些,我的意思是如何从 res 文件中添加大量图像。我将所有图像存储在一个单独的 .resx 文件中。我希望不必输入 100 行 imagelist.Images.Add()
    • 是的,我以为我已经尝试过了,但它似乎不起作用,我认为它适用于 C# 而不是 VB.Net
    【解决方案3】:

    你试过循环这个吗?我知道这是一篇旧文章,但你为什么要输入 100 行相同的代码 +- 1 个变量?

    【讨论】:

    • 当时确实尝试循环播放。没用。最终的解决方案是将图像作为单张添加,然后使用矩形数组获取图像。不过谢谢你的想法。
    • 如果我知道我可以为您提供答案,您正在使用什么样的资源文件(如果您不介意分享,这里可能需要一些代码)跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    相关资源
    最近更新 更多