以当前形式存在控制

本文关键字:存在 控制 | 更新日期: 2023-09-27 17:50:47

我需要找出如果组件与一些名称存在于当前的形式。我在字符串变量的组件的名称,如果它不存在,我需要创建它。我使用这个代码

Control c = Controls.Find(New, true)[0];   //najiti komponenty
        if (c == null) {}

但是它给我的错误,索引是在数组的边界之外。我知道这段代码很糟糕,但我不知道如何把它写得好,谷歌也不帮我。

以当前形式存在控制

Find方法返回控件数组,即Control[]。您正在尝试访问空数组的第一个元素,从而导致IndexOutOfRangeException你应该试试:

Control[] controls = Controls.Find(New, true); 
if (controls.Length > 0) 
{
    //logic goes here
}
else 
{
    //no components where found
}

尝试使用control . containskey()方法,(传递一个包含控件名称的字符串变量,而不是在我的示例中引用的文本):

if (!this.Controls.ContainsKey("MyControlName"))
{
    // Do Something
}