Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#使用动态工具_C#_Visual Studio_Winforms_Dynamicobject - Fatal编程技术网

c#使用动态工具

c#使用动态工具,c#,visual-studio,winforms,dynamicobject,C#,Visual Studio,Winforms,Dynamicobject,在c#表单应用程序中,当我单击按钮时,我创建了一个列表框。 我从一个文本框向列表框添加了一个项目 当我单击按钮时,如果列表框不存在,我希望创建它 因此,将列表框创建代码分配给if块时,将文本框中的数据分配给列表框的代码失败。 我怎样才能解决这个问题 if (araclar_eklendi == false) { ListBox listB_X = new ListBox(); listB_X.******** = new Point(380, 45); this.Controls.Add(lis

在c#表单应用程序中,当我单击按钮时,我创建了一个列表框。 我从一个文本框向列表框添加了一个项目

当我单击按钮时,如果列表框不存在,我希望创建它

因此,将列表框创建代码分配给if块时,将文本框中的数据分配给列表框的代码失败。 我怎样才能解决这个问题

if (araclar_eklendi == false)
{
ListBox listB_X = new ListBox();
listB_X.******** = new Point(380, 45);
this.Controls.Add(listB_X);

araclar_eklendi=true;
}

listB_X.Items.Add(txtBox_X.text);

您可以使用
foreach
语句遍历表单的
控件来检查列表框是否存在。并定义一个布尔值来存储结果

这是一个你可以参考的演示

// bool to check if a listbox exists
bool flag = false;

private void button1_Click(object sender, EventArgs e)
{
    Control control = new Control();
    // traverse the form
    foreach (Control c in this.Controls)
    {
        if (c is ListBox)
        {
            control = c;
            flag = true;
            break;
        }
    }
    if (flag) // if true, access the listbox and add new item from tb
    {
        ((ListBox)control).Items.Add(textBox1.Text);
    }
    else // if false, create a new listbox
    {
        ListBox listBox = new ListBox();
        listBox.Location = new Point(380, 45);
        this.Controls.Add(listBox);
        listBox.Items.Add(textBox1.Text);
    }
}

此代码在按钮中运行。单击事件,因此
ListBox listB_X
是本地对象:以后将无法使用此引用(如
listB_X.Items.Add(txtBox_X.text);
)。将列表框声明为实例字段,并检查它是否为
null
,以决定是新建它还是仅访问它。但是您可以简单地创建它,然后在第一次请求它的存在时显示它。如果列表框的位置和大小等是固定的,为什么不像往常一样(使用设计器)将其添加到表单中,并首先将其隐藏(可见:false)?然后,在这个事件处理程序中,当需要显示它时,如果它还不可见,则可以使它可见。