我有一个继承自 Button 的 MyButton 类。在这个类中,我放置了几个其他控件(Labels、Progessbar)。问题在于 Button 上的控件无法触发 Button.Click 或 Button.MouseHover 事件。我怎样才能实现 Button 上的控件仅显示但“事件透明”:在标签和 progessbar 上单击/悬停与我直接在 Button 上单击/悬停(包括发件人和所有内容)相同。类似于“从父级继承事件”。
class MyButton : Button
{
Label foo = new Label();
ProgressBar bar = new ProgessBar();
}
最佳答案
您应该从 UserControl 派生,然后将按钮作为子控件,并冒泡按钮子项的点击事件。
这link可能超出您的需要,但这是一个很好的起点。
更新
正如所指出的,您可能没有使用 ASP.NET。所以here是另一篇讨论不同自定义用户控件的帖子,特别是您所追求的是 Composite Control
。这适用于 Windows 窗体。
关于C#,容器的火灾事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5394711/