当TextBox控件位于禁用的GroupBox中时,如何使TextBox控件成为只读控件?

Pra*_*war 4 .net c# controls textbox winforms

GroupBox我的Windows窗体应用程序中有一个控件,其中我放置了一些TextBox控件.如何GroupBox在将各个TextBox控件设置为只读时禁用控件?

每当我禁用它时GroupBox,TextBox它内部的所有控件也会被禁用.我无法弄清楚如何使它们成为只读.

Cod*_*ray 11

禁用容器控件(例如a GroupBox)时,其所有子项也将被禁用.这就是它在Windows中的运作方式; 这是不可能改变这种行为的.

相反,您需要将每个单独控件的ReadOnly属性设置TextBox为true.如果禁用整个控件,则它所包含的GroupBox每个TextBox控件也将被禁用,这将覆盖ReadOnly属性的状态并阻止用户复制其内容.

一旦修复了禁用代码的代码部分GroupBox,就可以使用一个简单的foreach循环来完成在每个TextBox控件上设置属性的脏工作:

foreach (TextBox txt in myGroupBox.Controls)
{
    txt.ReadOnly = true;
}
Run Code Online (Sandbox Code Playgroud)