2013-07-27 50 views
-3

我有一個窗體1打開Form2。如何讓Form2中的所有textBox只讀?禁用其他形式的控制

表1:

Form2 f2 = new Form2(); 
f2.ReadOnly(); 
f2.ShowDialog(); 

表2:

public void ReadOnyTextBoxes(Control parent) 
{ 
    foreach (Control c in parent.Controls) 
    { 
     if (c.GetType() == typeof(TextBox)) 
     { 
      ((TextBox)(c)).ReadOnly = true; 
     } 
    } 
} 

public void ReadOnly() 
{ 
    ReadOnyTextBoxes(groupBox1); 
} 
+4

你的實際問題是什麼?你的代碼似乎工作正常。 –

+0

Form2中的textBoxes仍然不是隻讀 –

回答

1

你的想法工作,以使其在所有TextBox ES工作,你可以用一個遞歸函數做到這一點,像:

public void MakeReadOnlyTextBoxes(Control parent) 
{ 
    foreach (Control c in parent.Controls) 
    { 
     if (c.GetType() == typeof(TextBox)) 
     { 
      ((TextBox)(c)).ReadOnly = true; 
     } 
     else if(c.Controls.Count > 0) 
     { 
      MakeReadOnlyTextBoxes(c); 
     } 
    } 
} 

public void ReadOnly() 
{ 
    ReadOnyTextBoxes(this); 
} 

編輯:你應該使用c變量在re草書電話

+0

謝謝你Eyal :) –