0

我做了自己的控件,这个控件允许加载图像。它里面预装了一些图像,我想让程序员使用这个控件来选择他们想要的图像。

我的第一次尝试是使用 a ImageList,但由于它不接受 GIF 图像,我需要一个解决方法。该控件以PictureBox.

我的问题是:有什么方法可以将图像作为属性公开给可视化 IDE,就像在不使用 Imagelist 的情况下ImageList一样(选择ComboBox带有一点预览的图像)?

4

1 回答 1

1

如果有人需要解决方案:

<TypeConverter(GetType(ImageKeyConverter))> _
<RelatedImageList("LoadingImageList")> _
<Editor("System.Windows.Forms.Design.ImageIndexEditor, System.Design", GetType(Drawing.Design.UITypeEditor))> _
<Description("Imagen de carga que se mostrará en el control cuando se indique.")> _
Public Property LoadingImageKey() As String
    Get
        Return sPic
    End Get
    Set(ByVal value As String)
        sPic = value
    End Set
End Property

为了将 GIF 图像添加到 ImageList 中,我将它们添加到资源中,并在创建控件时将它们加载到 Imagelist 中。我有一个辅助变量来保存 GIFS,并且图像与字符串键相关:

Private Sub SysInfoControl_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim result As Resources.ResourceSet = My.Resources.ResourceManager.GetResourceSet(System.Globalization.CultureInfo.CurrentCulture, True, True)

    If pics.Count = 0 Then
        For Each elem As DictionaryEntry In result
            If elem.Value.GetType Is GetType(Bitmap) Then
                pics.Add(elem.Key.ToString(), CType(elem.Value, Bitmap))
                ImageList1.Images.Add(elem.Key.ToString(), CType(elem.Value, Bitmap))
            End If
        Next
        If pics.ContainsKey(sPic) Then picBoxLoading.Image = pics(sPic)
    End If
End Sub

结果示例:

在此处输入图像描述

于 2013-10-08T09:28:46.390 回答