如何按需刷新WinForms Visual Studio表单设计界面?

时间:2013-12-03 20:01:44

标签: c# winforms controls designer

我正在构建一个简单的无边界WinForms表单(基本上将其设置为Borderstyle of None),并自己绘制所有客户区和非客户区。 一切正常,但是当我使用派生表单(从我的自定义无边框表单派生)并在Visual Studio中以设计模式打开该表单时,执行任何操作,例如拖动表单边框的角来重新调整大小表单,表单不会刷新我绘制的自定义边框的绘制,直到我切换到另一个视图并返回到窗体视图或关闭窗体并重新打开它。

如何强制或请求VS强制刷新其视图,以便我的视觉更新立即可见,而不是关闭并重新打开表单设计视图?

我的非客户区和客户区绘图在运行时工作正常(包括用户在运行时重新调整窗体大小),但仅在设计时,我看到了问题。

我尝试了几个选项:

  • 自定义设计器

为无边框表单编写自己的设计器。但这似乎是一项非常复杂的任务,因为我必须通过从DocumentDesigner类派生来重写设计器的整个实现,就像MS的FormDocumentDesigner类(它是内部的 - 所以我无法从中得到)。

由于执行此选项非常复杂,我已放弃了这个想法。

  • 覆盖Size属性或OnSizeChanged成员:尝试覆盖(新)Form类的Size属性并强制重绘我的表单。这没用。

还有其他想法/选项吗?请指教。

0 个答案:

没有答案