フォーム上のすべての要素をトラバースし、それらのテキスト値を個別に取得する必要があります。
この再帰関数は、指定したコントロールとそのすべての子コントロールのすべてのテキスト値の文字列リストを返します。
private List<string> getStrings(Control control)
{
List<string> retval = new List<string>();
if (control.Text != "")
retval.Add(control.Text);
foreach (Control child in control.Controls)
retval.AddRange(getStrings(child));
return retval;
}
したがって、メイン フォームからこれを呼び出す場合は、次のように呼び出します。
List<string> allStrings = getStrings(this);
ただし、この関数はフォーム上のすべてのコントロールのテキスト値のみを返し、それらの子コントロールを再帰的に追跡することに注意してください。たとえば、一部のコントロール (ListBox など) には、この関数によって返されないテキスト値の完全なリストが含まれている場合があります。そのためには、関数を多少拡張してコントロールのタイプをテストし、該当する場合は具体的にその内容を返す必要がある場合があります。