2010-02-03 73 views
1

使用VB.Net我想自动调整DataGridView中头部的高度,以便在填充数据后在表单加载过程中调用AutoResizeColumnHeadersHeight。AutoResizeColumnHeadersHeight仅在设置断点时才有效!

的方法似乎并不做任何事情,但如果我做了以下没有问题: - 穿上grid.AutoResizeColumnHeadersHeight() 断点 - 打开快速监视对电网 - 扩展子属性 - 关闭quickwatch并按F5继续处理

调整大小然后工作!

我假设原因是评估网格的属性之一是导致方法行为不同。

有人知道我应该采取什么不同的做法或解决方法 - 例如哪些属性需要评估才能使其工作?

回答

3

您是否100%确定此代码在Load事件中运行?使用Handle属性可确保创建控制窗口并自动缩放以适应机器的视频适配器和系统字体设置。如果代码由于Load事件而实际运行,那么这绝不是必须的,所有的控件的Handle都将在那时被创建。

请注意,AutoResizeColumnHeadersHeight()实际上是手动调整大小,它只能工作一次。虽然它会自动计算高度。要获得自动调整大小,请将ColumnHeadersHeightSizeMode属性设置为AutoSize。

+0

呃,你是对的,它已经被移动到从New调用的InitializeComponent中运行。 虽然我希望手动调整大小,但如果用户愿意,可以让用户进行更改。 – 2010-02-03 13:45:01

0

找到一种解决方法,该方法可以正常工作,如果我像以前一样添加一行:

Dim workaround As System.IntPtr = grid.Handle 
grid.AutoResizeColumnHeadersHeight() 

我仍然有兴趣在一个更好的答案,但。

相关问题