简单继承有问题。问题很简单:
我的Parent Form
名称MainForm
来自System.Windows.Forms.Form
。
MainForm : System.Windows.Forms.Form
第二个ChildForm
来自MainForm
。
ChildForm : MainForm
MainForm
上只有一个按钮,这个类显然是private
。按钮调用ChildForm
。
但是在创建ChildForm
后,它上面还有那个按钮,我不能做任何事情。它甚至不在设计面板上,但是当我运行应用程序时,它也可以工作并调用ChildForm
。我根本想不出来......
那么如何将其从ChildForm
中移除并保留在原位?为什么私人会员被展示出其范围?
答案 0 :(得分:2)
根本没有显示出它的范围。当您创建ChildForm的实例时,您还可以获得MainForm的实例以及它的各个部分 - 比如按钮。 “私有”范围只会影响您在开发时访问该按钮的方式,即您无法从表单的类外部以编程方式访问它。
您需要做的是创建一个公共或受保护的属性,您可以在其中设置子窗体中按钮的可见性。在子窗体中,您可以将该属性切换(设置)为所需的默认值,这是一个适合于构造函数或窗体初始化例程的好地方。根据您使用的UI技术,您可以将按钮的可见性直接绑定到属性,或者您可以在窗体属性更改时以编程方式设置按钮的属性。
答案 1 :(得分:0)
为什么子表单需要从主表单继承?根据我的理解,主窗体有一个按钮,用于创建子窗体实例并显示它。如果你最终在表单上禁用 only 的东西,那么继承它就没有任何意义呢......
我只是让ChildForm成为自己的形式(继承自System.Windows.Forms.Form而不是MainForm),这将从ChildForm中删除按钮,并停止你必须将MainForm上的按钮设为public / protected。 / p>