【问题标题】:SplitContainer error拆分容器错误
【发布时间】:2013-09-27 16:14:57
【问题描述】:

我收到了这个错误报告:

Collection is read only.
at System.Windows.Forms.SplitContainer.SplitContainerTypedControlCollection.SetChildIndexInternal(Control child, Int32 newIndex)
at System.Windows.Forms.Control.ControlCollection.SetChildIndex(Control child, Int32 newIndex)
at System.Windows.Forms.Control.UpdateChildControlIndex(Control ctl)
at System.Windows.Forms.Control.WmWindowPosChanged(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

我不知道它是什么,搜索只是给了我一篇没有解决方案的 msdn 帖子。有任何想法吗?这个异常到底是关于什么的,如果我找到一些一般性的描述,我可能会找到解决它的方法?

【问题讨论】:

  • 这是错误报告。代码有超过 10.000 行,这不会导致任何特定部分。所以问题是有人知道为什么会发生这种情况吗?
  • 该错误表明您正在尝试从不允许此类操作的集合中分配或删除项目。很可能是IEnumberable 或类似的只读接口。
  • 我意识到这一点,但是如何使用 SplitContainer 来完成呢?我的猜测是,这是 .net 中 SplitContainer 实现中的一些内部错误,但它仍然可能是由于某些原因而发生的,并且有办法解决它。
  • 您可以找到所有对有问题的拆分容器的引用,并简单地发布与其相关的代码,例如构造函数和初始化。
  • SplitContainer 在代码中有 67 个引用。好的,这是可发布的,但不太可能有帮助。

标签: c# .net windows winforms


【解决方案1】:

在您的代码中,您正试图删除 SplitContainer 控件的内部面板

这样的事情会重现错误:

splitContainer1.Controls.RemoveAt(0);

您必须在代码中搜索您尝试删除或移除子控件的位置。很容易来自递归方法。

【讨论】:

  • 我在 SplitContainer 的一个容器内有 FlowLayoutPanel。它删除了一些控件。但这不应该算,对吧?我会仔细检查,但 SplitContainer 本身并没有删除它的第一个子控件...
  • @IvanIčin SplitContainer 有一个 Controls 属性,隐藏在设计器和代码中的 Attributes 中,但它就在那里。您必须发布导致错误的代码以供我们帮助。
  • 我知道,我只是说没有 splitContainer.Controls.Remove... 也没有 splitContainer.Panel1.Controls.Remove。也不 splitContainer.Panel2.Controls.Remove.
  • @IvanIčin 但是什么代码会导致异常发生?寻找只是 Controls.Remove 或只是 Dispose 的代码。
  • 我会接受这个答案,因为至少它显示了如何引发这个异常。但是,在我的代码中没有这样的痕迹,所以我坚信这是 .net 框架中的一个错误(您还可以从错误报告中看到该堆栈跟踪仅指 .net 框架类,我的代码在那里)
猜你喜欢
  • 1970-01-01
  • 2013-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多