c# - 在 Windows Forms 窗体上动态删除/添加控件

标签 c# winforms

我想在运行时在 Windows 窗体窗体上删除和添加控件。问题是,该控件必须与另一个控件具有完全相同的大小、位置和 anchor 。

如果用户打开窗口并满足某个条件,我想删除旧控件并用另一个替换它。

所以,我尝试了这个:

RichTextBox InsideText = new RichTextBox();
InsideText.Location = InsideBox.Location;
InsideText.Size = InsideBox.Size;

Controls.Remove(InsideBox);
Controls.Add(InsideText);

但是,不出所料,它没有用。 InsideBox 未删除,InsideText 未添加。

我做错了什么?对此有更好的方法吗?

最佳答案

我建议更简单的方法是:

  1. 在正确的位置添加一个面板,并设置正确的 anchor 等。
  2. 在该面板内添加 control1 设置为完整的 Dock
  3. 只需删除 control1 并在该面板内添加 control2 并将其设置为 Dock。

然后所有尺寸等都由一个 Panel 完成,而不必到处复制。

关于c# - 在 Windows Forms 窗体上动态删除/添加控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3628289/

相关文章:

C# -- 是否需要检查 "obj is Person && obj != null"

c# - 如何使用 iTextSharp 阅读 PDF 包

c# - 在 winform 应用程序中使用 CA siteminder 的 Web 服务身份验证

asp.net - 尝试学习 ASP.NET 的 WinForms/WPF 开发人员资源

c# - 得到错误变量 <variable name> 未声明或从未分配

c# - .NET 3.5 图表控件已禁用

c# - ThreadAbortException 调用 OdbcDataReader.ExecuteReader()

javascript - 用部分 View 替换主视图的内容

c# - MVC 4 razor 数据注释只读

C#:如何获取列表框中所选项目(和文本)的索引