编写文档编辑器的编程技巧?

时间:2010-04-01 01:19:47

标签: winforms editor

我问这个是因为我正在为我的Mega Man引擎编写两个这样的编辑器,一个是tileset编辑器,另一个是关卡编辑器。

当我说文档编辑器时,我的意思是图像编辑器和文本编辑器之类的超集应用程序类型。所有这些都分享了工具栏,菜单选项,以及图像编辑器和我的应用程序,工具窗格。我们都知道这些应用程序中有很多关于界面设计的建议,但我对编程建议感到疑惑。

具体来说,我怀疑我的代码设计有以下几点:

  • 许多菜单选项可切换各种行为。将选项的已检查状态与行为状态可靠地联系起来的正确方法是什么?有时它会更复杂,比如在没有加载文档时禁用选项。
  • 越来越多的共识似乎反对使用MDI,但我应该如何控制工具窗格?例如,我无法弄清楚如何使面板与主窗口一起最小化和最大化,就像Photoshop一样。
  • 当工具面板负责文档的特定部分时,谁实际拥有该文件?主窗口,还是面板类?
  • 如何在工具面板和主窗口之间进行通信?目前我的所有事件都基于事件,但似乎可能有更好的方式。

这似乎是一个常见的gui应用程序类,但我从未见过针对它们的代码设计的具体指针。你可以提供你写的任何建议或经验吗?

1 个答案:

答案 0 :(得分:1)

我猜你的“面板”是Windows.Forms.Form的:

如果您将其所有者设置为主窗口,它们将自动最小化您的主窗口。