【发布时间】:2009-03-07 23:09:32
【问题描述】:
我在 C# WinForms 中编写了一个扩展的 ListView。其目的是使用 WinAPI 显示当前正在运行的应用程序列表。但是,如果我尝试在构造函数中填充 ListView,它会在我运行应用程序时工作,但如果您尝试将控件放在任何表单上,它会导致 VS 2008 崩溃。
我认为崩溃的原因是使用 ThreadPool 或使用 P/Invoke 调用引起的。我试图将它包装在一个条件中以检查 DesignMode 属性,但我发现它总是在构造函数中返回 false。 为了解决我的问题,我覆盖了 ListView 基类的 InitLayout 方法并将填充代码放在那里,但我认为这不是放置它的最佳位置。
有谁知道将我的预填充代码放在扩展 ListView 中的最佳位置?
谢谢!
修复如下:
protected override void InitLayout()
{
if (DesignMode)
return;
RefreshApplications();
base.InitLayout();
}
【问题讨论】: