日期:2014-05-19  浏览次数:21441 次

C# 多视图切换问题 在线等……
本人对C#了解深度还是有限。现碰到一个问题,就是多视图切换问题。我有多种想法,但都一一被我排除了。现想请教老鸟们的想法。在线等各位了。

------解决方案--------------------
没有说清楚

什么是视图?

------解决方案--------------------
每个子窗体都挂接父窗体的事件,在子窗体的事件处理程序中根据事件的参数决定是否要显示该子窗体
------解决方案--------------------
MDI窗体,详见MSDN
------解决方案--------------------
事件处理就不说了,要让其它窗体显示在某个窗体中类似SQL SERVER的效果就用MDI
------解决方案--------------------
好像意思是平常是Hide的,需要的时候show出来

没有什么难的,你就判断这个MDI Form中有多少个加载了的视图,同时那个视图是符合你需要的,然后Show出来即可

下面是我的一小段代码,参考参考


#region 激活
foreach (System.Windows.Forms.Form f in this.MdiChildren)
{
if (f is AutoSS.Stock.frmGridStockSale_Cancel)
{
if (((AutoSS.Stock.frmGridStockSale_Cancel)f).CurrentStockType == 100)
{
DebugActive(item);

f.Activate();
return;
}
}
}
#endregion 激活

#region 调用
AutoSS.Stock.frmGridStockSale_Cancel frmTmp = new AutoSS.Stock.frmGridStockSale_Cancel();

frmTmp.CurrentStockType = 100;
frmTmp.MdiParent = this;
frmTmp.Show();
#endregion 调用


记住,这两个100就是这个视图需要的标示,因为一个Form有可能被多种用途打开,而需要激活的只是当中的一个,就是根据这个值区分的,当然,你可以选择使用其它的标示,例如文本
CurrentStockType 只是里头Public的属性