c# - 如何检查 (c#) ControlCollection.Find() 是否返回结果

标签 c# winforms

我正在使用ControlCollection.Find() C# 中的方法来查找我的表单中存在的一些图片框。

我将返回的结果存储在 Control[] 数组中。我如何知道 Find() 是否成功???

代码

Control[] temp = pictureBoxCollection.Find(TagNo, true);
if(temp.Length>0)
    UpdateRes = update_status(TagNo, Status);

其中 TagNo 是包含控件确切名称的字符串。

是的。我正在使用控件的确切名称。我之前已经成功地使用了 Find() 方法(当 Control 肯定存在于 Collection 中时)。这次我遇到了问题,因为该控件可能存在于集合中,也可能不存在。

最佳答案

你尝试过吗?

var result = controlCollection.Find(contolName,true);
if(result == null || result.Length == 0)
{
   // fail to find
}

您可以使用此方法查看所有控件的列表

    public void FillControls(List<string> container,Control control)
    {
        foreach (Control child in control.Controls)
        {
            container.Add(child.Name);
            FillControls(container,child);
        }
    }

然后使用:

    public Form1()
    {
        InitializeComponent();

        List<string> controls = new List<string>();
        FillControls(controls,this);
    }

关于c# - 如何检查 (c#) ControlCollection.Find() 是否返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5634470/

相关文章:

c# - 使用标签单击事件打开和关闭 tabControl

c# - 在C#中快速将多个图像保存到磁盘

foreach 循环中的 PowerShell Add_Click

c# - 如何允许隐式转换?

c# - 如何声明事件处理程序以传递 FxCop 规则,尤其是包含 sender 和 e 的规则?

c# - 无法加载类型 'OpenQA.Selenium.Chrome.ChromeDriver'

c# - 覆盖 ToString() 并添加到 ListBox C#

c# - 在 WinForm 上禁用最小化和最大化?

c# - 自定义用户控件中的重写字体属性未显示在设计器文件中

c# - .dtbcache 文件有什么作用?