Проверьте, не является ли значок формы пустым или установлен по умолчанию? - PullRequest
0 голосов
/ 15 мая 2018

Есть идеи, как я могу проверить, является ли значение значка формы пустым или установлено по умолчанию?Я попробовал что-то подобное, но безуспешно ...

If Me.Icon Is Nothing Then
     MsgBox("Nothing")
End If

Я заметил, что свойство icon формы уже имеет значение.По умолчанию.Итак, как я могу проверить, использует ли моя форма это значение по умолчанию?

Заранее спасибо !!!

1 Ответ

0 голосов
/ 15 мая 2018

Кажется, нет способа определить, является ли текущий 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...