当有俩个窗体的界面有很多地方类似,或者俩个界面的业务逻辑比较雷同,这个时候可以使用继承,减少代码的重复率,降低耦合度,便于项目的开发与维护。
场景:现在有用户界面和记录界面,俩个界面共同的效果是都有新增、删除、修改、插入等四个按钮。先把共同的组件设计在父窗体中,每个子窗体继承于该父窗体即可。
1 先创建父窗体FormParent.cs 在此界面添加相同的组件部分
2 添加子窗体用户界面和记录界面 修改继承代码 ,把FormUser : Form 改成FormUser : FormParent 即可
3 添加主窗体页面 添加俩个按钮 分别跳转到对应的界面
4 这个时候可以运行,当跳转到对应的界面时候 会把父窗体的加载到子窗体上
5 记录界面如下
6 如果想要点击新增按钮处理的业务逻辑不一样,可以在父窗体下声明属性,然后在子窗体中的
构造函数中给属性赋不同的值例如
父窗体定义属性如下
上图当中的 [Browsable(true)]属性是为了让子窗体的属性面板上显示B属性和MyColor属性,也就是可以通过属性面板上修改属性值如下图
7 然后在父窗体的新增按钮点击事件中进行判断 可以区分是哪个界面的业务逻辑
public void button1_Click(object sender, EventArgs e)
{
//判断当前窗体是哪个窗体 如果是用户窗体 弹新增用户
if (A == 1)
{
MessageBox.Show("新增用户");
}else if (A == 2)
{
MessageBox.Show("新增记录");
}
}
8 额外提醒:子窗体继承过来的父窗体控件默认上不可修改的,可以把父控件中对应的组件
的Modifiers设置为public,子窗体的组件方可修改
写在最后:不经一番寒彻骨,怎得梅花扑鼻香
希望与君共勉。