加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 00:03:28 所属栏目:百科 来源:网络整理
导读:我想找到一个名为“textBoxQH_N”的TextBox,其中“_N”是1..96的数字. 所以,我有这个代码: String sTextBoxToFind = String.Format("textBoxQH{0}",QuarterHour);TextBox tb = (TextBox)this.Controls.Find(sTextBoxToFind,true); …但它给了我,“无法将类
我想找到一个名为“textBoxQH_N”的TextBox,其中“_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控件,对吗?

解决方法

查找,第二个属性设置为true,是递归的. “姓名”对于该父母来说是独一无二的,但您正在搜索许多不同的父母. “名称”不是全球唯一的.

正如Justin在另一个答案中所建议的那样,First或FirstOrDefault可能比在数组上使用[0]更好.它可以更好地将您的意图传达给未来的读者.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读