为什么我在循环中添加控件的代码失败?

时间:2013-01-02 13:41:11

标签: c# .net loops windows-phone unhandled-exception

public MainPage()
{
    InitializeComponent();
    CheckBox c = new CheckBox();
    for (int i = 0; i < 2; i++)
    {
       c.Content = " Value ";
       lbox.Items.Add(c);
    }
}

lbox是UI中的空列表框,上面的代码会抛出一个未处理的异常,该异常由App.xaml.cs中的代码捕获。如果我删除for循环,代码工作正常。这段代码出了什么问题?

5 个答案:

答案 0 :(得分:5)

您正在循环外部初始化CheckBox,并将其添加两次。将它移到for循环中。

    for (int i = 0; i < 2; i++)
    {
        CheckBox c = new CheckBox();
        c.Content = " Value " ;
        lbox.Items.Add(c);
    }

答案 1 :(得分:4)

在循环中创建一个新的复选框实例

public MainPage()
{
    InitializeComponent();

    for (int i = 0; i < 2; i++)
    {
        CheckBox c = new CheckBox();
        c.Content = " Value " ;
        lbox.Items.Add(c);
    }
}

答案 2 :(得分:3)

尝试将复选框放在循环中

public MainPage()
{
    InitializeComponent();

    for (int i = 0; i < 2; i++)
    {
        CheckBox c = new CheckBox();
        c.Content = " Value " ;
        lbox.Items.Add(c);
    }
}

答案 3 :(得分:1)

Bellow code没关系:

在Form1.Designer.cs中

你必须定义:

partial class From1
{   
    private.System.Windows.Forms.ListBox lbos;
    private.System.Windows.Forms.CheckBox c;
}

并且在Form1.cs中你必须写:

public MainPage()
{
    InitializeComponent();

    for (int i = 0; i < 2; i++)
    {
        this.c.Text = " Value " ;
        this.lbox.Items.Add(c);
    }
}

答案 4 :(得分:0)

public MainPage()
{
    InitializeComponent();
    for (int i = 0; i < 2; i++)
    {
        lbox.Items.Add(new CheckBox{Content =" Value "});
    }
}