我在创建我的自定义控件之一时遇到了麻烦。

我得到的是一个用户控件中的列表框,我需要能够在仍处于设计器中时单击列表项。这将使其表现得很像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/

10-09 00:34