我有一个winforms应用程序,可让您编辑文档。每个文档都是由章节制成的,每章都包含RTF块的集合。 RTF块加载到 PanelControl 使用 Dock = DockStyle.Top.

问题在于,当章节的总高度变得太大(估计> 32768像素)时,较低的块不正确地停靠:它们相互出现。当试图隔离问题时,我注意到这也发生在更简单的控件中 LabelControl.

我尝试的东西是类似的方法 Refresh(), Invalidate()PerformLayout: :他们会的 不是 解决问题。

什么 帮助正在调整表格大小。之后,所有控件都正确布置。

谁能在不调整表格大小的情况下帮助解决此问题?

附着a 简单的演示项目 这说明了问题。

screenshot

有帮助吗?

解决方案

从上面的评论(似乎确实是这里的问题):

如果人们试图在16位以外使用坐标,那么Winforms(和GDI通常)通常会不可预测。尝试避免这种情况。在可能的问题范围内,根本根本没有被绘制,在意外的代码位置等处覆盖了FlowFlowExceptions。

其他提示

如果您可以决定更改此布局,我建议您采用另一种方法来显示/编辑文档章节,其中某种分页或将RTF块折叠到菜单中并仅显示电流。

您看到..这是一个有意义的高度值是整数16位值。屏幕比这更小。随着面板的高度增加到如此高的尺寸。您会发现使用滚动条将变得非常非常明智。这不是一件好事。

用户可以使用尺寸为2倍,3x,5x的内容。但是,在最佳情况32X中,以高度(〜32768)的高度(〜32768)滚动(〜32768)(使用良好的分辨率监视器)非常不舒服。

另外,我相信,由于大脑难度在越来越多的“事物”集合中,用户的生产率会降低。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top