gpt4 book ai didi

.net - Winforms 控件占位符

转载 作者:行者123 更新时间:2023-12-04 02:06:47 35 4
gpt4 key购买 nike

我正在尝试将 System.Windows.Forms.Control 添加到给定的表单控件集合中。为此,我创建了一个类型为 control 的私有(private)字段,然后在构造函数中将此字段实例化为 System.Windows.Forms.Control 的新实例。

在运行时,我试图通过执行以下代码示例中的操作将 _placeholder 变量的类型更改为 TextBox。所以基本上我试图有一个 Control 类型的占位符,并在运行时将其更改为另一个控件,如 TextBox 或 Label。我的问题是我的表格上没有显示任何内容?任何见解将不胜感激。

public class MyForm : Form
{
System.Windows.Forms.Control _placeholder = null;

public MyForm()
{
_placeholder = new System.Windows.Forms.Control();
this.Controls.Add(_placeholder);

ChangeToTextBox();
}

public void ChangeToTextBox()
{
_placeholder = new TextBox();
}
}

最佳答案

正如所写的那样,这不起作用,因为原始占位符仍然是添加到控件的引用。您可以通过以下方式修复它:

public void ChangeToTextBox()
{
this.Controls.Remove(_placeholder); // Remove old
_placeholder = new TextBox();
this.Controls.Add(_placeholder); // Add new
}

话虽如此,如果这要进入表单上的相同位置,您可能需要考虑放置 Panel而是在那里,只需将 TextBox 添加到面板。这将避免删除现有控件的需要,因为它只是添加一个。

关于.net - Winforms 控件占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4834700/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com