2010-05-18 71 views
0

我试图让一个listview停靠在splitcontainer中的parent,我发现ListView.ParentnullWinForms:为什么Control.Parent为空?

根据文档这应该是:

甲表示控件的父或容器控制的控制。

任何人都可以解释为什么此属性将为空?我尝试将ListView移动到窗体(为了排除停靠在splitcontainer中时出现的奇怪行为)而无济于事。

+0

你有错误的参考。张贴显示你如何获得它的片段。 – 2010-05-18 16:02:37

回答

2

不幸的是,这完全是我的错误。我不是在耻辱中删除自己的问题,而是要说出我做错了什么,以防其他人做同样的事情。

本质上,我的代码由于ListView.Disposed事件而运行。此事件大概发生在控件从其父控件集合中删除后,这就是为什么Parent为空。

0
  1. 是splitcontainer的控件集合中的listview?
  2. 你什么时候检查父母的财产?您可以覆盖OnLoad方法并在base.OnLoad被调用后检查吗?
0

ListView似乎不在任何SplitContainer的SplitterPanel(designer-bug?)的控件集合中。 当它不设计者的工作改变它在designer.vb手动像这样的(?):

Me.SplitContainer1.Panel2.Controls.Add(Me.ListView1) 
0

你确定你使用的是正确的ListView?如果它出现在一个winforms应用程序中,我认为它必须有一个父项。否则,它不会被渲染,因为它从表单开始并递归地触及子节点。如果您引用了您尚未实际使用的新构建的列表视图,则父代可能为空。