如何解决在继承链中编辑父级,同时保持基础父级\子级
我有以下.Net继承链:
- 控制-> ButtonBase->按钮
- 控制->标签
- 控制-> ScrollableControl->面板
我要编辑控件类,但要使用此父级的.Net子级。
我在想像这样吗?
public class TouchControl : Control
{
public event MouseEventHandler TouchDown,TouchUp;
protected override void WndProc(ref Message m)
{
if(m == a)
{TouchDown(Object,MouseEventArgs);}
else if (m == b)
{TouchUp(Object,MouseEventArgs);}
}
}
public class TouchButtonBase : TouchControl
{
// Inherits from TouchControl but implements ButtonBase Class
}
public class TouchButton : TouchButtonBase
{
// Inherits TouchButtonBase but implements Button Class
}
public class TouchLabel: TouchControl
{
// Inherits TouchControl but implements Label Class
}
完成此任务的最佳方法是什么?
我当前的做法违反了DRY原则,我想解决此问题:
public class TouchPanel : Panel
{
protected override void WndProc(ref Message m)
{
//Repeated functionality
}
}
public class TouchButton : Button
{
protected override void WndProc(ref Message m)
{
//Repeated functionality
}
}
public class TouchPictureBox : PictureBox
{
protected override void WndProc(ref Message m)
{
//Repeated functionality
}
}
public class TouchLabel: Label
{
protected override void WndProc(ref Message m)
{
//Repeated functionality
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。