为表单创建多个接口

Bri*_*ker 4 c# forms interface winforms

我有一个应用程序,我想有2个可选接口:触摸屏和非触摸屏.

我显然可以制作两个单独的表单,但是有很多底层代码,只要有更改就必须重复.所有控件都相同,只是有不同的大小和位置.我想要放入2个InitializeComponent方法,但后来我无法用visual studio设计这两个接口.

希望别人有任何想法.

Lar*_*ech 5

我认为这将是一个具有两个实现的接口,然后您将所需的一个注入到表单中.

一个简单的例子:

public interface IScreen
{
  void DoStuff();
}

public class TouchScreen : IScreen
{
  public void DoStuff()
  { }
}

public class NonTouchScreen : IScreen
{
  public void DoStuff()
  { }
}

public partial class ScreenForm : Form
{
  IScreen _ScreenType;

  public ScreenForm(IScreen screenType)
  {
    InitializeComponent();
    _ScreenType = screenType;
  }
}
Run Code Online (Sandbox Code Playgroud)

你会加载它:

  TouchScreen touchThis = new TouchScreen();
  ScreenForm form1 = new ScreenForm(touchThis);
  form1.Show();

  //or

  NonTouchScreen notTouchThis = new NonTouchScreen();
  ScreenForm form2 = new ScreenForm(notTouchThis);
  form2.Show();
Run Code Online (Sandbox Code Playgroud)