Проблема, вытекающая из ToolboxItemAttribute в.Net, Winforms
В качестве примера, вот простой атрибут, полученный из ToolboxItemAttribute:
<ToolboxItemX(False)> _
Public Class Class1
Inherits Button
End Class
Public Class ToolboxItemXAttribute
Inherits ToolboxItemAttribute
Public Sub New(ByVal defaultType As Boolean)
MyBase.New(defaultType)
End Sub
End Class
Проблема в том, что когда я показываю набор инструментов, в нем появляется Class1. Как будто мой атрибут игнорируется, и поэтому используется атрибут toolboxitem по умолчанию.
Я использовал рефлектор, чтобы взглянуть на логику ToolboxService.GetToolboxItem, и, насколько я могу видеть, он должен взять мой атрибут и убедиться, что элемент не должен отображаться на панели инструментов.
PS: я пытался сбросить набор инструментов, закрыть ide и снова открыть и т. Д.
1 ответ
Панель инструментов Windows Forms удивительно капризна. Это должно работать, но на самом деле это не так. Не знаю почему, этот код заблокирован внутри Visual Studio. В качестве обходного пути вы можете скрыть это, используя DesignTimeVisibleAttribute. Как это:
<ToolboxItemX(False)> _
<DesignTimeVisible(False)> _
Public Class Class1
Inherits Button
End Class