我正在创建多个表单,这些表单将使用相同的数据填充ListView。所以我想而不是在每个表单中单独填充数据,我将创建一个派生的ListView并将数据填充在构造函数中。
我遇到的问题是当我将控件添加到设计器的表单时,它将硬编码的ListViewItems添加到设计器文件中的ListView。因此,当应用程序实际运行时,它会创建重复的项目。
我知道为什么会这样,但我想找到一种方法来阻止它。
感谢您的帮助。
答案 0 :(得分:0)
经过一些研究后,我找到了解决问题的方法。
我需要的是一种只在“DesignMode”为假时执行我的代码的方法。
由于DesignMode在构造函数中始终为false,因此我对OnCreateControl事件进行了覆盖并将其放在那里:
protected override void OnCreateControl()
{
if (!DesignMode)
{
// Populate data
}
base.OnCreateControl();
}