我做了一个课程,让我的WinCE课程注册。
我怎样才能从班级中绘制pannel + textbox,并抓住enter press
来自文本框?
我尝试这样做:
TextBox tb=new TextBox();
tb.Location=new Point(10,10);
Panel pn=new Panel();
pn.Dock=DockStyle.Fill;
pn.Controls.Add(tb);
this.Controls.Add(pn);
but i got error in: this.Controls.Add(pn);
是否有任何简单的示例代码?
提前谢谢
答案 0 :(得分:0)
您的问题缺少一些重要的背景。我使用你的代码构建了一个简单的表单,它运行得很好。 Form1
只是您在创建新设备应用程序时显示的默认表单。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
AddMyHardcodedAdditions();
}
void AddMyHardcodedAdditions()
{
TextBox tb = new TextBox();
tb.Location = new Point(10, 10);
Panel pn = new Panel();
pn.Dock = DockStyle.Fill;
pn.Controls.Add(tb);
this.Controls.Add(pn);
}
}
编辑解决您的评论。
我相信你误解了this keyword。如果您是从MyClass
构建此内容并且没有Controls
集合,则无法在this.Controls ...
的任何位置调用MyClass
而不会出现编译错误。
您可以在Form或Control类上添加InsertControl
方法,如下所示:
public void InsertControl(Control control)
{
this.Controls.Add(control);
}
...并从您的MyClass
代码中调用它:
MyForm myForm = ...; //set by you at some point
...
void AddMyHardcodedAdditions()
{
...
myForm.InsertControl(pn);
}