我们假设我有一个名为System.Windows.Forms.Form
的{{1}}和两个名为MyForm
和System.Windows.Forms.Panel
的嵌套MyPanel
。在每个面板中,有按钮,标签等。有没有办法将MyOtherPanel
和MyPanel
分成另一个类,并在GUI中将它们呈现为MyOtherPanel
。
我的问题的主要目的是避免填充System.Windows.Forms.Panel
。
谢谢!
答案 0 :(得分:0)
为了更好地组织WinForm代码,您可以考虑一个重要的设计考虑因素,即让每个代码都成为Handler。所以你的代码与WinForm.cs是分开的。例如,您可以拥有MyFormHandler.cs,它保存/实现您的MyPanel1和MyOtherPanel1逻辑。这是一种更好的方法,可以将代码与.NET Winform代码分开,并且易于重用,扩展和维护。
答案 1 :(得分:0)
您可以创建一个新类来继承面板。然后,您可以覆盖要从面板更改的任何属性或方法。在这种情况下,当你从主表单或MyForm中调用它们时,你需要初始化它们,即
void main(){
MyPanelClass meaningfulpanelname = new MyPanelClass();
meaningfulpanelname.Show();
}
public class CustomPanel : Panel
{
protected override void functionToOverride(EventArgs e)
{
//what you want done
}
}
我已经包含了.Show(),因为我不记得在C#中动态创建时是否需要这样做。
由于它是在Windows窗体应用程序中,我猜你做了。
我还可以看到语法
this.Controls.Add(meaningfulpanelname);
在void main()中而不是
meaningfulpanelname.Show();