我有一个WinForms应用程序,此时功能齐全,大约有15-20个元素。我希望能够在两个视图之间切换,一个'扩展'观点和另一个是一个简单的'图。
'扩展'视图将与现在完全一样,简单' view会隐藏除1个控件之外的所有控件,并添加5个其他控件。
最好的方法是什么?我想只是逐个设置.Visible
属性来隐藏东西并不是一个很好的做法。我也不希望有任何重复的控件或代码。
我显然应该在开始时考虑过这个问题,但这需要我来。任何指向正确的方向将不胜感激。
答案 0 :(得分:0)
在您的应用程序中添加2个面板控件,并将所有"简单"控制在一个面板上,所有"扩展"第二个面板上的控件。
Panel panelSimple = new Panel();
panelSimple.Location = new Point(1,1);
panelSimple.Size = new Size(500,500);
panelSimple.Controls.Add(simpleTexbox);
panelSimple.Controls.Add...
Panel panelExtended= new Panel();
panelExtended.Location = new Point(1,1);
panelExtended.Size = new Size(500,500);
panelExtended.Controls.Add(extendedButton);
panelExtended.Controls.Add...
然后只需将面板的.Visible标志设置为false或true,具体取决于您所需要的(您需要确保两者同时不可见或不可见)
答案 1 :(得分:0)
这就是我最终要做的事情。我有两个相同大小和位置的面板,axWindowsMediaPlayer
是我想在两者上使用的控件:
if (panelExtendedLayout.Visible)
{
panelSimpleLayout.Visible = false;
panelExtendedLayout.Visible = true;
panelExtendedLayout.Controls.Remove(axWindowsMediaPlayer);
panelSimpleLayout.Controls.Add(axWindowsMediaPlayer);
}
else
{
panelSimpleLayout.Visible = true;
panelExtendedLayout.Visible = false;
panelExtendedLayout.Controls.Remove(axWindowsMediaPlayer);
panelSimpleLayout.Controls.Add(axWindowsMediaPlayer);
}
这可以看起来非常无缝,视频一直播放,所有其他控件在点击按钮时显示/消失。我确实遇到了一个初始问题,panelSimiple
由于我的拖拽而被设置为panelExtended
的子项,并将其放到相同的空间中,我必须在设计代码中对其进行编辑。