请教有经验的人关于C# Winform程序中设计代码结构的问题

peter56688 2010-03-09 11:47:17
本人以前一直做VC++的开发,去年开始接触C#的winform开发,做了个别项目后一直被“怎么设计代码结构”的问题困扰,请教经验比较丰富的高手几个问题,前提都是界面结构比较复杂的winform程序:

1.一般主窗口中主要写哪些代码?我一般是写工具栏按钮事件、主菜单事件,问题是如果主窗口是复杂的窗口分割模式呢?比如类似visual studio那样的窗口,一些菜单是处理子窗口功能的,难道这些子窗口也作为MDIChild?不然不直接把菜单加到主菜单中的话还有什么其他方法?

2.一般弹出的对话框或者非模式窗口在不关闭的情况下怎么调用父窗口的功能?或者不是窗口而是一些后台的类对象,子窗口当然可以通过ParentForm的属性直接调用,但如果父窗口函数不是public的也没有办法啊。我经常写一些托管然后声明event这样的做法,但有时候感觉太多了看起来不舒服,不知道一般情况下应该怎么设计?

3.在分割窗口中,两个子视图直接传递消息或者互相响应的时候采用什么方法?要通过主窗口传递吗?这样好像又有很多托管和事件的产生。

综上所述,我写出的复杂界面的程序总是在主窗口类中有很多事件响应消息函数,或各个子窗口中有很多托管和事件。

请高手指导~~~~!谢谢
...全文
103 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
天乐 2010-03-10
  • 打赏
  • 举报
回复
菜单可以由菜单管理器专门负责管理,除了管理响应事件之外,甚至可以把加载也一并管理了,例如根据权限不同,提供的菜单功能也不同
peter56688 2010-03-09
  • 打赏
  • 举报
回复
引用 1 楼 agentianle 的回复:
1、一般很少用MDI,主窗体里放个Panel,要显示的内容界面多的话,再来个TabControl。内容界面独立为UserControl,显示时放到Panel或TabControl的Page里面

那怎么解决菜单的问题呢?子窗口功能相关的菜单还是直接设计到主菜单中,然后在主窗口类中响应在转发出去吗?
天乐 2010-03-09
  • 打赏
  • 举报
回复
1、一般很少用MDI,主窗体里放个Panel,要显示的内容界面多的话,再来个TabControl。内容界面独立为UserControl,显示时放到Panel或TabControl的Page里面

2、3、观察者模式


110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧