我有一个应用程序,我希望它有 2 个可选界面:触摸屏和非触摸屏。
我显然可以制作 2 个单独的表格,但是有很多底层代码必须在任何时候对其进行更改时进行复制。所有控件都是相同的,只是大小和位置不同。我正在考虑放入 2 个 InitializeComponent 方法,但我无法使用 visual studio 设计这两个界面。
希望其他人有任何想法。
最佳答案
我认为这将是一个具有两个实现的接口(interface),然后将您想要的一个注入(inject)到表单中。
一个简单的例子:
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;
}
}
你会这样加载它:
TouchScreen touchThis = new TouchScreen();
ScreenForm form1 = new ScreenForm(touchThis);
form1.Show();
//or
NonTouchScreen notTouchThis = new NonTouchScreen();
ScreenForm form2 = new ScreenForm(notTouchThis);
form2.Show();
关于c# - 为一个Form制作多个界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6944719/