Visual Studio 2019、Windows 窗体和 VB。我有一个带有拆分容器的表单,其中一个面板中填充了richtextbox,另一个面板中填充了第三方控件(txtextcontrol:一个可以更好地处理表格的richtextbox替代品)来显示教科书和笔记。我正在手动处理所有调整大小,因为我无法获得各种停靠和锚定选项来调整大小并将所有内容放置在我想要的位置,并且我可以获得比停靠时更快、更流畅的滚动。当我使用两个富文本框时,这一切都完美无缺。但是我有一些表格显示不正确。
恐怕 txtextcontrol 是罪魁祸首,但他们的网站提供的文档很少,也没有技术支持,除非你花大价钱。而且我不确定这可能是什么原因,所以我会在这里询问您是否有任何想法。
问题是当我通过拖动 Form1 边框或通过最大化或规范化表单来调整大小时,txtextcontrol 无法正确更新自身,但这可能部分是更基本问题的副作用,splitcontainer 拒绝更改它的宽度。在 Form1_SizeChanged 事件中,我有以下几行:
SplitContainer1.Width = Me.Width - 32
SplitContainer1.Height = Me.Height - FlowLayoutPanel1.Height - 46
SplitContainer1.Top = FlowLayoutPanel1.Height
'there's a row of floating buttons above the two panels
宽度不会改变,但高度和顶部会改变。
如果我在子程序结束时重复宽度命令,有时它会在该点工作,有时程序会崩溃并显示错误消息:“在枚举数被实例化后修改了集合”并尝试使用 Try 捕获错误...Catch 并不能防止崩溃。我认为当调用 splitcontainer.moved 事件然后触发尝试更改 splitcontainer 的调整大小事件时,有时会触发错误,但这似乎并不是一直的解释。而且我无法理解为什么高度会改变但宽度不会改变(没有对接,也没有涉及锚点)
如果我手动移动分离器,它最终可能会解决问题;(我第一次移动它时,txtcontrol 的大小是正确的,但它仍然位于一个太窄的面板中,无法全部显示。第二次移动拆分器时,面板宽度也得到了纠正,一切都很好,直到下一次调整大小)。
任何人都可以弄清楚发生了什么并给我线索如何解决这个问题?txtextcontrol 的 dll 是否有任何理由阻止调整其所在面板的大小(但为什么它只会影响宽度?),或者这只是分散了我面对的巨大明显错误的注意力而我只是没看到?