小编rhe*_*man的帖子

WinForms 深层嵌套控件调整内核大小错误 - 拆分面板无法正确缩放控件

(对nested 的初步猜测被证明是不正确的。问题似乎是SplitContainer 面板没有正确缩放其托管控件。)


我有一些表单的选项卡控件在加载时无法正确调整大小。 https://support.microsoft.com/en-us/kb/953934在 2008 年描述了这样一个内核错误。很难相信它没有得到修复。我认为它消失了一段时间,但我又开始看到问题了。

控件嵌套得很深。Midi 父、子窗体、选项卡控件、带有两个面板和控件的拆分器控件。对于自上而下的第一个有问题的控件是选项卡控件。当加载后调整窗体大小但锚点不正确并且部分控件被剪切时,它会调整大小。

该问题似乎特定于 100% 桌面字体大小 - 100+ 大小的桌面工作正常。我使用 VS 2013 v5 以 125% 的速度开发 - 这个问题也出现在 v4 上。

任何人都知道缺少知识库文章中概述的自定义控件的解决方法吗?

我错过了其他事情?


仔细观察 SplitContainer 是不调整锚点大小/尊重锚点的控件。


我尝试在显示选项卡后运行此代码但它不起作用 - 看起来与使用锚点大致相同。似乎 TabControl 报告的 ClientSize 不正确

    SplitContainer1.Width = TabControl1.ClientSize.Width - 10
    SplitContainer1.Height = TabControl1.ClientSize.Height - TabControl1.ItemSize.Height - 10
Run Code Online (Sandbox Code Playgroud)

这是显示问题的完整表格。在 125% 桌面上,它显示为在 100% 桌面上的 IDE 中,选项卡上的控件未正确定位。

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class frmChild
Inherits System.Windows.Forms.Form

'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing …
Run Code Online (Sandbox Code Playgroud)

vb.net winforms windows-kernel

5
推荐指数
1
解决办法
1094
查看次数

标签 统计

vb.net ×1

windows-kernel ×1

winforms ×1