我在winforms应用程序中使用CAB和infragistics,在一个表单中我有一些拆分器和带有网格、按钮、标签的用户控件......在这个拆分器内,当表单在运行时打开时,用户控件没有正确绘制,这个问题以 win7 x64 为人所知,如此处所述,在 Windows 7 上的拆分容器绘制问题中进行了控制,并在此来自组件工厂网站缓存的存档链接上进行了描述。上述主题中提供的解决方法包括覆盖 OnSizeChanged 方法:
protected override void OnSizeChanged(EventArgs e)
{
if (Handle != null)
BeginInvoke((MethodInvoker)delegate
{ base.OnSizeChanged(e); });
}
使用 CAB 时此解决方案的问题是,在从构造函数初始化表单组件时调用此方法(从构造函数调用 InitializeComponent),并且在访问 Handle 属性时调用 OnLoad 方法,因为它的值为 null 时创建,
protected override void OnLoad(EventArgs e)
{
_presenter.OnViewReady();
base.OnLoad(e);
}
此处 _presenter 尚未设置,其值为 null 并引发异常。
我能为这个问题做些什么?
问候。