c# - 顶部对接控制32768像素以上

标签 c# winforms docking

我有一个 WinForms 应用程序,允许您编辑文档。每个文档都由章节组成,每个章节都包含 RTF block 的集合。 RTF block 使用 Dock = DockStyle.Top 加载到 PanelControl 中。

问题在于,当章节的总高度变得太大(估计> 32768 像素)时,较低的 block 无法正确停靠:它们出现在彼此后面。当尝试隔离问题时,我注意到这种情况也会发生在像 LabelControl 这样的简单控件上。

我尝试过诸如 Refresh()Invalidate()PerformLayout 之类的方法:它们不会解决问题。

有帮助的是调整表单的大小。之后,所有控件都已正确布局。

任何人都可以帮助解决如何在不调整表单大小的情况下解决此问题吗?

附上simple demo-project这说明了问题。

screenshot

最佳答案

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

如果尝试使用 16 位范围之外的坐标,WinForms(以及一般的 GDI)通常会出现不可预测的行为。尽量避免这种情况。在一系列可能的问题中,有一些东西根本没有被绘制,在意外的代码位置出现 OverflowExceptions 等。

关于c# - 顶部对接控制32768像素以上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19834687/

相关文章:

C#对接控制库

c# - 具有右锚定静态面板的可变高度 FlowLayoutPanel

java - 什么是对接框架以及何时使用它?

c# - 有没有比在整个应用程序代码中散布 try/catch 更优雅的错误处理方法?

c# - 在 C# 中无失真地裁剪和打印图像文档

c# - 获取错误 SqlException 未被用户代码处理

c# - Keycloak刷新 token 未经授权的asp .net core

c# - DrawingContext到位图文件

c# - 记录 ASP.NET MVC 应用程序中的用户事件

c# - 调用 Windows API 函数设置自动增益控制