我有一个继承自的类System.Windows.Forms.Form
public partial class RAT : Form
并继承另一个类RAT
class CAD : RAT
当我创建 的实例时CAD
,我希望RAT
(实际上是从)大小改变,而当我处置CAD
对象时,我想RAT
回到原来的。
CAD
构造函数:
public CAD()
{
base.Size = new System.Drawing.Size(805, 700);
}
CAD
析构函数:
~CAD()
{
base.Size = new System.Drawing.Size(805, 300);
}
但问题是,它没有执行这段代码。它没有更新size
表单。但是当我更新它时,RAT
它可以完美运行:
CAD CADObject = new CAD();
this.Size = new System.Drawing.Size(805, 700);
我认为我正在以正确的方式访问父类成员。那么可能是什么问题?
额外的:
之后我尝试从CAD
构造函数添加一个控件:
public CAD()
{
TextBox sample = new TextBox();
sample.Multiline = true;
sample.Location = new System.Drawing.Point(50, 500);
sample.Size = new System.Drawing.Size(50, 100);
base.Controls.Add(sample); //here `base` refers to `RAT` class
}
但是这段代码也不能正常工作。
整体场景:
RAT
是形式。CAD
是一个简单的类继承自RAT
. CAD
对象是在单击按钮时创建的RAT
。CAD
该程序有一些额外的功能,所以我想通过添加一些额外的控件并增加它的大小来更新它RAT
的 UI ,并从和更新它们。RAT
CAD
methods
properties
该程序非常简单。我只想从子类访问父成员。我知道我可以做到这一切RAT
,但我试图从子类访问它。那应该行得通。
完整代码:
namespace RAT_Controller
{
public partial class RAT : Form
{
public RAT()
{
InitializeComponent();
}
CAD CADObject;
bool CADObjectCreated = false;
private void btnCADInitializer_Click(object sender, EventArgs e)
{
if (!CADObjectCreated)
{
CADObject = new CAD();
CADObjectCreated = true;
}
else
{
CADObject.Dispose();
CADObjectCreated = false;
}
}
}
class CAD : RAT
{
public CAD()
{
base.Size = new System.Drawing.Size(805, 700); //updating form size
sample = new TextBox();
sample.Multiline = true;
sample.Location = new System.Drawing.Point(50, 500);
sample.Size = new System.Drawing.Size(50, 100);
base.Controls.Add(sample); //adding control to form
}
TextBox sample;
~CAD()
{
sample.Dispose();
base.Controls.Remove(sample); //removing control from form
base.Size = new System.Drawing.Size(805, 300); //updating form size
}
}
}