コントロール付きのTabControlを備えたフォームがあります。
フォームのインスタンスを作成した後、関数を呼び出して、値を受け取る準備をします。
この関数は、Textプロパティを「0」からある値に変更します。数行後、フォーム上のすべてのTextBoxを再帰的にリストし、オブジェクトリストに追加する継承された関数を呼び出します
再帰関数が終了すると、リストを確認します。テキストボックスには以前の値があります。
追加情報
// Textbox.text has "0"
textBox.Text = "123";
//Other components change
PrepareForm(); //inherited function that enumerates all TextBoxes (and other components) on that form in a list
PrepareForm()内:
// Value is "123"
List<Control> lstControls = new List<Control>();
foreach (Control c in this.Controls)
{
ListControls(lstControls, c);
}
// The textbox on the list has the old value ("0") <- Edited
protected void ListControls(List<Control> Controls, Control control)
{
if (control.HasChildren)
{
foreach (Control c in control.Controls)
{
ListControls(Controls, c);
}
}
}
編集:フォームはInitializeComponent()を呼び出し、テキストボックスに「0」を入力すると、form_loadが返されます。値を「123」に変更し、PrepareForm()を呼び出します。呼び出しの直後に、テキストボックスの値は「123」になります。次に、再帰関数を呼び出します。この再帰関数が戻ると、値は「0」に戻ります。