Кажется, нет способа определить, является ли текущий Icon
значением DefaultIcon
.Но есть статическое / общее свойство DefaultIcon
, к которому вы можете обратиться с помощью отражения:
Imports System.Reflection
Imports System.Runtime.CompilerServices
Module FormsExtensions
<Extension()>
Public Function HasDefaultIcon(form As System.Windows.Forms.Form) As Boolean
' relies on reflection, so might break in future
' necessary because the DefaultIcon property is internal
Dim fType = GetType(Windows.Forms.Form)
Dim defaultIconProp = fType.GetProperty("DefaultIcon", BindingFlags.NonPublic Or BindingFlags.Static)
Dim defaultIcon = TryCast(defaultIconProp?.GetValue(form), System.Drawing.Icon)
Return form.Icon Is defaultIcon
End Function
End Module
С этим методом расширения проверка проста:
Dim hasDefaultIcon As Boolean = Me.HasDefaultIcon()