我正在创建Outlook 2007插件并动态添加控件,因此我需要以编程方式设置父FormRegion
的高度。我遇到了一个问题,有时FormRegion
正在改变其高度或其他方面的测量单位。当我尝试以编程方式在this.Height = XXX
事件中设置FormRegion(FormRegionShowing
)的高度时,它会被搞砸,因为它将度量单位调整了大约.41
为了重现这一点,我要做的就是创建一个新的Outlook 2007插件项目,添加一个新的" Adjoining" FormRegion
到项目并向以下事件添加消息框或其他一些调试方法(有时您必须双击outlook消息并在其自己的窗口中打开):
private void FormRegion1_FormRegionShowing(object sender, System.EventArgs e)
{
MessageBox.Show("FormRegionShowing: " + this.Height.ToString());
}
private void FormRegion1_SizeChanged(object sender, EventArgs e)
{
MessageBox.Show("SizeChanged: " + this.Height.ToString());
}
我已经尝试过调试我能想到的每一个事件,但我还没有找到一个在FormRegionShowing
之后只触发一次的事件。您知道我可以用来确保我正确设置高度的房产或事件吗?
现在,我的解决方法是在InitializeComponents
中捕获原始高度,然后在FormRegionShowing
事件中获取转换比率并相应地使用它。然而,这不是理想的IMO。