【发布时间】:2013-11-07 09:15:38
【问题描述】:
我正在制作一个名为 FMP 的 Windows 窗体应用程序。 我有一个名为 Form1 的类,一个名为 Panels 的类。 然后我使用继承来制作具有不同属性的不同面板。
这样做的原因是因为老师不希望我们初始化Form-class中的所有面板。
但我不知道该怎么做。在这里@Stackoverflow 找到了一些东西,但他们也帮不了我。
所有面板的尺寸、位置和颜色都相同。 (通过单击一个按钮,将出现另一个面板;)) 但是面板上的 Name、Controls 和 BackgroundImages 是不同的。控件是这里最重要的方面。
问题是:
宽度和高度应该等于表单的宽度和高度。 什么是最好的 C# 编程?在 Form1 中设置面板的宽度和高度(但我将它们设为保护)或在面板类中声明表单并使用 Form1.Width?
我正确知道的代码:
表格1
public Form1()
{
InitializeComponent();
buttonsProperties();
panelsProperties();
}
private void button1_Click(object sender, EventArgs e)
{
panelsChanged(1);
}
private void button2_Click(object sender, EventArgs e)
{
panelsChanged(2);
}
private void panelsChanged(int panelNr)
{
if (panelNr == 1)
{
panel1.Visible = true;
panel1.Enabled = true;
panel2.Visible = false;
panel2.Enabled = false;
}
else if (panelNr == 2)
{
panel1.Visible = false;
panel1.Enabled = false;
panel2.Visible = true;
panel2.Enabled = true;
}
}
小组
class Panels
{
Form1 f = new Form1();
//Color Property
protected Color color { get; set; }
//Size
protected Int32 Width { get; set; }
protected Int32 Height{ get; set; }
//Location
protected Point Location { get; set; }
public Panels()
{
initMembers();
}
private void initMembers()
{
this.Width = f.Width;
this.Height = f.Height;
this.Location = new Point(0, 0);
}
}
public class Panel1 : Panels
{
//Nothing yet.
}
【问题讨论】:
-
如果面板应该填满整个表单区域,您可能想尝试
panel.Dock = DockStyle.Fill;。 -
谢谢 DockStyle.Fill 是一个选项。但是程序不会绘制面板。我认为这是因为我无法将其添加到 Form1.Controls ( this.Controls.Add(panels) //Error )
标签: c# inheritance panels