我有一个 WinForms 应用程序,允许您编辑文档。每个文档都由章节组成,每个章节都包含 RTF block 的集合。 RTF block 使用 Dock = DockStyle.Top
加载到 PanelControl
中。
问题在于,当章节的总高度变得太大(估计> 32768 像素)时,较低的 block 无法正确停靠:它们出现在彼此后面。当尝试隔离问题时,我注意到这种情况也会发生在像 LabelControl
这样的简单控件上。
我尝试过诸如 Refresh()
、Invalidate()
和 PerformLayout
之类的方法:它们不会解决问题。
有帮助的是调整表单的大小。之后,所有控件都已正确布局。
任何人都可以帮助解决如何在不调整表单大小的情况下解决此问题吗?
附上simple demo-project这说明了问题。
最佳答案
根据我上面的评论(似乎确实是这里的问题):
如果尝试使用 16 位范围之外的坐标,WinForms(以及一般的 GDI)通常会出现不可预测的行为。尽量避免这种情况。在一系列可能的问题中,有一些东西根本没有被绘制,在意外的代码位置出现 OverflowExceptions 等。
关于c# - 顶部对接控制32768像素以上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19834687/