之前多次提到过“在容器中显示窗口”,不仅老六不置可否,连很多用户也不知道这样的功能究竟有什么用?
现做了个例子,大家可以分析一下:
在实际应用中,单纯的停靠窗口或模式(独立)窗口都有欠缺。停靠窗口要占用固定的屏幕空间;而模式(独立)窗口如果尺寸很大的话,又要遮挡住主表。因此,最好的解决办法就是:想用独立的窗口时,只要将窗口打开;不需要独立的窗口时,可将该窗口停靠到指定的容器中(这时就相当于停靠窗口了)。
这个要求现在是客户提出来的,我本以为用停靠窗口可以实现,但做出来的界面效果实在是不好看。
旧话重提,请老六抽空考虑一下。
[此贴子已经被作者于2009-10-26 12:24:25编辑过]
就这样的功能,狐表简单可以实现,与您叙述的将整个窗口加入容器不符!
楼主的窗口1是主窗口,有表,估计他不希望关闭窗口,采用分区面板的方式是很轻松就能实现的!
整个窗口与我的方法一样,只需要将录入窗口的所有控件搬到窗口1的面板1里面,再窗口1的分区面板的分区1再增加一个分区面板,通过隐藏分区1、显示分区2和隐藏分区2/显示分区1相互切换,这样录入窗口都不要了,就在主窗口操作比那样更灵活、使用,因为录入操作时,可以缩小主表的显示区域,不需要看这部分,还可以实现录入完毕自动切换!
各位的讨论让我很受启发,谢谢!
但有很重要的一点,可能被大家忽略了:上面的解决方案可以把控件从“窗口1”平移到“窗口2”,这样以来,“窗口1”中的全局事件就不会执行了。
比如,textbox1中的keydown事件执行完以后,还要执行本窗口keydown中的全局事件。
[此贴子已经被作者于2009-10-26 14:55:02编辑过]
如果是非动态增删的控件,可以不需要全局事件!我的方案避开了动态增删,采用的是隐藏,各自的按钮还是在各自的窗口。
如果动态增删按钮一样有办法,在窗口1、窗口2全局事件写同样的代码,通过判断控件名称来执行,只是窗口1、窗口2的控件名称要共同拥有唯一性,一样行得通!