我正在使用C#.Net和win表单编写桌面应用程序,我想在表单加载中制作一系列只读文本框,下面的代码不适用于formloa,但它适用于所有文本框中的形式。
foreach(Control ctrl in this.Controls)
{
if(ctrl is TextBox)
{
TextBox textbx = ctrl as TextBox;
if(textbx.ReadOnly == false)
{
textbx.ReadOnly = true;
}
}
}
但我想操纵Form1容器中的那些Textbox。我怎么能这样做? }
答案 0 :(得分:1)
你正在循环遍历Form1中的每个控件,所以当然你得到循环中的所有文本框。
如果将文本框放在像groupbox这样的容器中,那么可以使用foreach中的groupbox而不是整个Form1对象。
因此,您在表单和内部都有一个groupbox控件,您将拥有要设置为ReadOnly的文本框。
foreach(Control ctrl in myTextBoxContainer.Controls)
{
if(ctrl is TextBox)
{
TextBox textbx = ctrl as TextBox;
if(textbx.ReadOnly == false)
{
textbx.ReadOnly = true;
}
}
}