【发布时间】:2013-04-07 21:40:10
【问题描述】:
我想在运行时在 Windows 窗体窗体上删除和添加一个控件。问题是,控件必须具有与另一个控件完全相同的大小、位置和锚点。
如果用户打开窗口并且满足某个条件,我想删除旧控件并用另一个替换它。
所以,我尝试了这个:
RichTextBox InsideText = new RichTextBox();
InsideText.Location = InsideBox.Location;
InsideText.Size = InsideBox.Size;
Controls.Remove(InsideBox);
Controls.Add(InsideText);
但是,正如预期的那样,它没有用。 InsideBox 未删除,InsideText 未添加。
我做错了什么?有更好的方法吗?
【问题讨论】:
-
您是否检查了 InsideText 的 Visible 属性是否为真?
-
这基本上就是我这样做的方式,它对我有用。当您从父控件的集合中删除控件时,它将消失。您确定要从正确的集合中删除它吗?
-
我认为我从来没有遇到过动态创建/删除控件的问题。您是否确保 Visible 是真实的?您是否尝试过设置 X 和 Y、宽度和高度,而不是使用大小和位置(我总是使用 X、Y、宽度、高度,我认为这是旧习惯),这是我能想到的唯一区别和这个例子。如果我们可以看到任何其他相关代码,可能会有所帮助。