我在创建我的自定义控件之一时遇到了麻烦。
我得到的是一个用户控件中的列表框,我需要能够在仍处于设计器中时单击列表项。这将使其表现得很像tabcontrol。
我对用户控件的处理不多,但尝试捕获一些重大事件却没有成功。
protected override void OnClick(EventArgs e)
{
if (DesignMode)
{
InvokeOnClick(listBox1, e);
}
base.OnClick(e);
}
我一直无法在网上找到任何东西。.关于如何做到这一点的任何想法?
在此先感谢=)
最佳答案
@Bradley:感谢您指出正确的方向
您将需要编写ControlDesigner类,然后在UserControl的[Designer( ... )]
属性中使用它。
请参阅此处的示例:
http://msdn.microsoft.com/en-us/library/sycctd1z(v=VS.90).aspx
对于实际点击:
http://msdn.microsoft.com/en-us/library/system.windows.forms.design.controldesigner.gethittest(v=VS.90).aspx
ControlDesigner具有protected bool GetHitTest(Point point)
方法-您可以在ControlDesigner中实现此方法,并在希望控件根据屏幕上的位置来处理单击时返回true
。
关于c# - 如何单击设计器中的usercontrol子级?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7762397/