【问题标题】:WinForms: Why is Control.Parent null?WinForms:为什么 Control.Parent 为空?
【发布时间】:2010-05-18 14:09:19
【问题描述】:

我正在尝试将列表视图的parent 停靠在拆分容器中,并发现ListView.Parentnull

根据文档,这应该是:

一个表示控件的父控件或容器控件的控件。

谁能解释为什么这个属性会是空的?我尝试将 ListView 移动到 Form(以排除停靠在 splitcontainer 中时的奇怪行为),但无济于事。

【问题讨论】:

  • 您的参考文献有误。发布一个 sn-p,说明你是如何获得它的。

标签: .net winforms


【解决方案1】:

不幸的是,这完全是我的错误。我不会羞愧地删除我的问题,而是说我做错了什么,以防其他人也这样做。

基本上,由于ListView.Disposed 事件,我的代码正在运行。此事件可能发生在控件从其父控件集合中删除后,这就是 Parent 为空的原因。

【讨论】:

    【解决方案2】:
    1. listview 是否在 splitcontainer 的控件集合中?
    2. 什么时候检查父属性?你能覆盖OnLoad方法并在base.OnLoad被调用后检查吗?

    【讨论】:

      【解决方案3】:

      ListView 似乎不在任何 SplitContainer 的 SplitterPanel 的控件集合中(设计错误?)。 当它在设计器上不起作用时,像这样在 Designer.vb(?) 中手动更改它:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2012-02-20
          • 1970-01-01
          • 2013-10-30
          • 2015-06-30
          • 2016-07-11
          • 2012-12-17
          • 2013-09-21
          • 2012-02-15
          • 1970-01-01
          相关资源
          最近更新 更多