gpt4 book ai didi

c# - 为什么 Find() 方法返回一个数组?

转载 作者:行者123 更新时间:2023-11-30 13:27:32 24 4
gpt4 key购买 nike

我想找到一个名为“textBoxQH_N”的文本框,其中“_N”是一个从 1..96 开始的数字。

所以,我得到了这段代码:

String sTextBoxToFind = String.Format("textBoxQH{0}", QuarterHour);
TextBox tb = (TextBox)this.Controls.Find(sTextBoxToFind, true);

...但它给了我“无法将类型‘System.Windows.Forms.Control[]’转换为‘System.Windows.Forms.TextBox’

所以我更改了第二行以仅获取第一个返回的 val:

TextBox tb = (TextBox)this.Controls.Find(sTextBoxToFind, true)[0];

这似乎可行,但控件的名称属性不应该对其所有者唯一吗? IOW,Find() 应该只返回 0..1 个控件,对吧?

最佳答案

Find,第二个属性设置为 true,是递归的。 “名字”对于那位 parent 来说是独一无二的,但您正在搜索许多不同的 parent 。 “名称”不是全局唯一的。

正如 Justin 在另一个答案中所建议的,FirstFirstOrDefault 可能比在数组上使用 [0] 更好。它可以更好地向 future 的读者传达您的意图。

关于c# - 为什么 Find() 方法返回一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10285174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com