获取类型和名称的控件
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。 txtTitle01
或 txtData01
您可以使用 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();
我有一组控件 (TextBox
),可以获取表单上的所有文本框。
TextBox[] title = MView.Controls.OfType<TextBox>().ToArray();
是否也可以select他们的名字?
例如,如果我想 select 所有名称中包含 "title" 的文本框,并将其传递到 title
数组中,那么 select 所有名称中包含 "data" 的文本框,并将其传递到单独的 data
数组?
注意: 我指的不是包含 "title" 或 "data" 的 text,而是文本框的名称。 IE。 txtTitle01
或 txtData01
您可以使用 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();