在滚动条出现之前将窗口大小设置为最小尺寸C#

时间:2012-09-07 12:22:04

标签: c# winforms size

Basicaly我试图在滚动条出现之前自动将窗口大小设置为最小尺寸,逻辑上我认为如果我将窗口的大小设置为这个大小并且所有组件都应该显示没问题,我尝试了几个回答其他问题的答案但是没有用,最小尺寸是0。

当我启动我的应用程序时,它没有显示完整的内容,我在一个radform中使用telerik报告查看器(如果有人知道它是什么),但不介意名称,报告查看器和radform只是已知winform和组件的扩展,因此适用相同的规则。

问题是当我显示窗口时它不会显示完整的组件,它主要是我需要通过调整窗口大小来移除的水平滚动条。

我尝试在表单和组件上输出autoscrollminize属性,但它们都是0,0但是如果滚动条出现并且当我手动调整窗口大小时消失,那么我可以使用某个属性/值来设置从一开始就是windowsize。

技术信息 该组件已停靠 如果我取消停靠报表查看器组件,滚动条会出现在此组件内部,因此关键是要根据此组件中的数据确定何时出现垂直滚动条

我已经尝试过了 将窗口的autosize属性设置为true并将大小设置为10,10 找到最小尺寸/ AutoScrollMinSize 将大小设置为首选大小(当我这样做时,窗口采用绝对最小的可能大小,仅显示标题栏。)

1 个答案:

答案 0 :(得分:2)

表单最小尺寸是您在表单上设置的最小尺寸,它不是为您计算的最小值。

您需要计算/找出控件所需的空间,然后您将在表单高度/宽度中设置一个值。 要计算控件所需的空间,取决于您:可能行数乘以行高+页眉/页脚高度?或类似的东西。

你甚至可以做一些不同的研究:如果有滚动条,某个地方已经有你需要的价值,你只需找到它。 为了进行这种研究,有一个非常有用的小工具

Hawkeye - .Net运行时对象编辑器 - http://hawkeye.codeplex.com/

它的工作方式类似于属性网格,但您可以将其挂钩到运行的.net程序,它会显示所有内容(属性值,私有字段值,对象引用...),因此您可以尝试挖掘滚动条对象看看你是否能找到你的身高/宽度值。