最小化 Form C# 后 TabControl 变得混乱

问题描述 投票:0回答:1

这些图片将帮助解决我的问题。

当我最小化表单并将其从最小化状态恢复时,TabControl 看起来像......我什至不知道如何描述它。上面的链接会有帮助。

有3张图片。 第一张图片 - 表格正常的样子 第二张图片 - 当我将其从最小化状态恢复时 第三张图片 - 当我将鼠标悬停在选项卡的文本上时

当我单击其中一个选项卡或使用键盘快捷键(在 KeyDown 事件中编程)时 它将完全修复混乱的 TabControl。

我尝试了 ChatGPT 的每一个解决方案。什么都没起作用。 我切换了表单的几乎所有属性,例如 DoubleBuffering 或 AutoScroll。什么都没起作用。 我试图将它从TabControl所在的TableLayoutPanel中取出。没有什么。 我尝试删除一个选项卡,因此它只是一行选项卡(FFMPEG 选项卡)。依然没有。 在 32 位和 64 位之间切换。呵呵。不。

没有人和我遇到同样的问题(一如既往),StackOverflow 是我最后的希望。

c# winforms tabcontrol
1个回答
0
投票

您有两个问题:

  1. 由于将 Tab 控件放置在 TableLayoutPanel 控件中,因此它的宽度在运行时会缩小。您需要非常小心该控件的大小(应完全停靠)以及其列和行的大小。如果您不确定发生了什么,则不能简单地为每个 TableLayoutPanel 单元格的背景着色,但您可以做的是将一个 Panel 控件放入该单元格中,将该 Panel 控件停靠到完整状态,然后为其背景着色,例如, 红色的。转到下一个 TableLayoutPanel 单元格,添加另一个 Panel 控件,并为其背景着色,例如蓝色。当您运行该应用程序时,您将能够看到 TableLayoutPanel 单元格的大小发生了什么变化。底线:您必须确保 TabControl 的宽度在最小化/最大化事件期间/之间永远不会减小 - 而这正是正在发生的情况。 TableLayoutPanel 是一个很好用的控件,但您确实需要深入了解该控件如何调整自身大小。它的行和列可以自动调整大小、绝对大小或百分比大小——这些设置至关重要。如果您对它们不确定,请阅读有关 TableLayoutPanel 的更多内容 - 通过真正理解该控件,您会受益匪浅!

  2. 您已将 TabControl 的 MultiLine 属性设置为 true(要在 WinForms 设计器中查看该属性,请确保在设计器中选择了 TabControl 而不是 TabPage 控件)。虽然将 MultiLine 设置为 true 并没有错误,但它确实解释了选项卡堆积的原因。如果你只需确保 TabControl 的 MultiLine 属性设置为 false,那么至少会解决堆叠选项卡问题,并且你可以专注于布局问题。

这是当 MultiLine 为 true 并且宽度变窄时 TabControl 的样子:

© www.soinside.com 2019 - 2024. All rights reserved.