C#/ .NET - 更好的组织方式

时间:2016-10-14 22:33:45

标签: c# .net

我们假设我有一个名为System.Windows.Forms.Form的{​​{1}}和两个名为MyFormSystem.Windows.Forms.Panel的嵌套MyPanel。在每个面板中,有按钮,标签等。有没有办法将MyOtherPanelMyPanel分成另一个类,并在GUI中将它们呈现为MyOtherPanel

我的问题的主要目的是避免填充System.Windows.Forms.Panel

的名称空间

谢谢!

2 个答案:

答案 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();