当我向我的Windows ComboBox
添加Form
时,我注意到一些奇怪的行为:
当我在没有Form
的情况下调整ComboBox
的大小时,它的行为正确并且文件菜单保持在它应该保持的位置,即使我尽可能向左拖动右角。当我添加ComboBox
并尝试做同样的事情时,文件菜单被推到左边...在我的实际应用程序中,文件菜单完全消失,但它基于同样的问题。
这是“正常”调整大小,文件菜单位于正确的位置:
这是“异常”调整大小,文件菜单,组框和状态条全部被推到左侧:
两种形式之间的唯一区别是ComboBox
...是否有人知道为什么会发生这种情况,我该如何解决?
文件Left
的{{1}}值/属性变为负数,这会使事情变得非常丑陋,因为我在组框下面有一个MenuStrip
,它总是偏向右边的0由固定填充(比如50 px)。此时,DataGridView的左侧与“文件”菜单的左侧之间的距离变为105像素,因为“文件”菜单现在为-55。
请注意,即使我一直向左滚动,文件菜单仍然保持在-55 ...所以如果我有一个从0到50偏移的东西(比如我的GridView),那么此时的区别是它们将是105像素。
答案 0 :(得分:2)
这看起来像这样,因为两个表单之间的滚动区域不同。这是因为您现在可以在接受Focus的表单上拥有控件。由于组合框具有焦点,因此滚动区域会进行调整以使其保持可见。因此,“文件”菜单似乎向左移动,但实际上位于表单上的相同位置。
答案 1 :(得分:1)
调整大小时,自动滚动功能会将光标保持在视图中。
当表单大小极端时,您可以使用AutoScrollMargin,AutoScrollMinSize,MinimumSize,MinimumSize属性来阻止看起来太糟糕的事情。
容器控件还可以帮助创建更好的布局。
创建一个全屏和小屏幕的布局并不容易,当表单太小时,您甚至可能需要完全更改布局。
答案 2 :(得分:1)
表单自动滚动似乎是将组合框滚动到光标所在的视图中,因为它具有输入焦点。