我在制作自定义控件时遇到问题。当我创建和构建控件时,我的工具箱就是我所追求的:
Public Class PanelBar
Inherits Panel
Private _mCusBtn As CustomButton
Public Sub New()
InitializeComponent()
_mCusBtn = New CustomButton()
AddHandler _mCusBtn.ButtonClicked, AddressOf CustomButtonClicked
Controls.Add(_mCusBtn)
Public Sub CustomButtonClicked(ByVal btn As CustomButton, ByVal buttonId As Int32)
' Do important stuff here...
End Sub
End Class
但是,当它显示在工具箱中时,此控件还会显示:
Public Class CustomButton
Inherits Button
Public Property BtnId As Integer
Public Property BtnColor As Color
Public Event ButtonClicked(sender As CustomButton, buttonId As Int32)
Public Sub New()
' Set new property values
End Sub
Private Sub CustomButtonClicked(sender As Object, e As EventArgs) Handles Me.Click
RaiseEvent ButtonClicked(Me, BtnId)
End Sub
End Class
所以我尝试将CustomButton类设置为朋友以限制外部访问,因为我不想将其作为工具箱中的控件,我收到此错误:' btn'无法公开类型' CustomButton'在第一堂课的CustomButtonClicked事件中,通过课程' PanelBar'。在项目之外。
我不确定是否有必要限制有助于构成我的自定义控件的控件的范围,因为它必须访问它们上的事件。说实话,我不记得有一次我遇到了一个自定义控件没有列出构成它的控件,所以我不完全确定这是可能的......但我真的会感谢我能得到的任何建议。
答案 0 :(得分:2)
要从工具箱中“隐藏”控件,请使用exec {
command => 'for i in vars
do
echo $i
more-statements
done';
}
属性:
def parse(string, **kw):
try:
... # Body of function here
except ParseError:
if 'default' in kw:
return kw['default']
raise
如果您的类继承自default
而不是ToolboxItem
,并且您不希望它们显示在底部的表单组件托盘中,请使用:
<ToolboxItem(False)>
Public Class CustomButton
...