【问题标题】:What method or event should I use prepopulate an extended ListView?我应该使用什么方法或事件来预填充扩展的 ListView?
【发布时间】: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();
}

【问题讨论】:

    标签: c# .net winforms listview


    【解决方案1】:

    使用它来区分设计模式和应用程序运行:

    if (LicenseManager.UsageMode != LicenseUsageMode.Designtime)
    {
    }   
    

    【讨论】:

      猜你喜欢
      • 2013-01-19
      • 1970-01-01
      • 2020-10-19
      • 1970-01-01
      • 2015-07-03
      • 2011-03-12
      • 2013-08-21
      • 2014-07-24
      • 2011-06-22
      相关资源
      最近更新 更多