获取类型和名称的控件

Get Controls of a type and name

我有一组控件 (TextBox),可以获取表单上的所有文本框。

TextBox[] title = MView.Controls.OfType<TextBox>().ToArray();

是否也可以select他们的名字?

例如,如果我想 select 所有名称中包含 "title" 的文本框,并将其传递到 title 数组中,那么 select 所有名称中包含 "data" 的文本框,并将其传递到单独的 data 数组?

注意: 我指的不是包含 "title" 或 "data" 的 text,而是文本框的名称。 IE。 txtTitle01txtData01

您可以使用 Where LINQ

的扩展方法
TextBox[] title = MView.Controls.OfType<TextBox>().Where(d=>d.Name.Contains("title")).ToArray();

也可以添加多个条件

TextBox[] title = MView.Controls.OfType<TextBox>().Where(d=>d.Name.Contains("title") || d.Name.Contains("data")).ToArray();

因为您需要文本框数组,所以最好将数组命名为标题而不是标题。您可以使用 Where 条件和 Lambda 表达式来过滤控件。

对于标题:检索名称包含 "title"

的控件
TextBox[] titles = MView.Controls.OfType<TextBox>().Where(c=>c.Name.Contains("title")).ToArray();

对于数据:检索名称包含 "data"

的控件
TextBox[] data = MView.Controls.OfType<TextBox>().Where(c=>c.Name.Contains("data")).ToArray();