如何为以相同形式存在的所有文本框赋予相同的属性。
foreach (var textbox in this.Controls.OfType<TextBox>())
{
textbox.ContextMenu = new ContextMenu();
}
上面的代码仅在文本框不是嵌套格式时才有效。
在我的项目中,我在 tabcontrol 中有多个标签页。所以我不能实现上面的代码。但我可以实现以下代码:
foreach (TextBox textbox in this.Controls.OfType<TabControl>().SelectMany(tc => tc.Controls.OfType<TabPage>().SelectMany(page => page.Controls.OfType<TextBox>())))
{
textbox.ContextMenu = new ContextMenu();
}
foreach (var textbox in this.tabCarInsurance.Controls.OfType<TextBox>())
{
textbox.ContextMenu = new ContextMenu();
}
foreach (var textbox in this.tabHomeLoans.Controls.OfType<TextBox>())
{
textbox.ContextMenu = new ContextMenu();
}
foreach (var textbox in this.tabRetirement.Controls.OfType<TextBox>())
{
textbox.ContextMenu = new ContextMenu();
}
在这里,我正在为每个 tabControl 实现。我仍然不喜欢(因为我有更多的标签页要处理)。有没有办法减少上面的代码。
我尝试了以下代码:(不工作)
foreach (var textbox in this.Controls.OfType<TabControl>().OfType<TextBox>())
{
textbox.ContextMenu = new ContextMenu();
}
我从上一个问题中得到了上面的代码知识。
请帮助
提前致谢。