C# 如何按需刷新WinForms Visual Studio窗体设计图面?

C# 如何按需刷新WinForms Visual Studio窗体设计图面?,c#,winforms,controls,designer,C#,Winforms,Controls,Designer,我正在构建一个简单的无边框WinForms表单(本质上是将其设置为无边框样式),并自己绘制所有客户端区域和非客户端区域。 所有工作正常,但当我使用衍生表单(源自自定义无边框表单)并在Visual Studio中以设计模式打开该表单,并执行任何操作(如拖动表单边框的角以重新调整表单大小)时,该表单不会刷新我绘制的自定义边框的绘制,直到我切换到另一个视图并返回表单视图,或者关闭表单并重新打开它 如何强制或请求VS强制刷新其视图,以使我的视觉更新立即可见,而不是关闭并重新打开表单设计视图 我的非客户机

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

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

我的非客户机区域和客户机区域绘图在运行时(包括用户在运行时重新调整表单大小时)工作正常,但只有在设计时,我才看到问题

我尝试了几种选择:

  • 定制设计师
为无边框窗体编写自己的设计器。但这似乎是一项非常复杂的任务,因为我必须重写设计器的整个实现,就像MS的FormDocumentDesigner类一样(它是内部的,所以我不能从它派生),通过从DocumentDesigner类派生

因为做这个选择太复杂了,我放弃了这个想法

  • 重写Size属性或OnSizeChanged成员:尝试重写(新建)Form类的Size属性并强制我的表单重画。这不起作用

还有其他想法/选择吗?请告知。

尝试发布重现问题的代码。一般来说,设计师不喜欢处理继承的表单。也许,您所需要做的就是在调整大小时调用
invalidate