我尝试将GUI与课程结合起来 - 没有成功

时间:2010-04-06 16:23:29

标签: c# windows-ce

我做了一个课程,让我的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);

是否有任何简单的示例代码?

提前谢谢

1 个答案:

答案 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);
}