Dou*_*oug 4 .net controls winforms
我试图将System.Windows.Forms.Control添加到给定的窗体控件集合.我这样做是通过创建类型控件的私有字段,然后将此字段实例化为构造函数中的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();
}
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为原始占位符仍然是添加到控件的引用.你可以通过这样做来解决它:
public void ChangeToTextBox()
{
this.Controls.Remove(_placeholder); // Remove old
_placeholder = new TextBox();
this.Controls.Add(_placeholder); // Add new
}
Run Code Online (Sandbox Code Playgroud)
话虽如此,如果要进入表单上的相同位置,您可能需要考虑将Panel放在那里,只需将TextBox添加到Panel.这样就不需要删除现有的控件了,因为它只是添加了一个控件.
归档时间: |
|
查看次数: |
3037 次 |
最近记录: |