private void btnSave_Click(object sender, EventArgs e)
{
var lines = new List<string>();
foreach (Control c in this.Controls)
{
if (c is TextBox)
lines.Add(string.Format("{0},{1}", ((TextBox)c).Name, ((TextBox)c).Text));
if (c is ComboBox)
lines.Add(string.Format("{0},{1}", ((ComboBox)c).Name, ((ComboBox)c).Text));
}
System.IO.File.WriteAllLines(@"data.csv", lines);
}
WPF の場合:
ヘルパー:
public static IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj) where T : DependencyObject
{
if (depObj != null)
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
if (child != null && child is T)
{
yield return (T)child;
}
foreach (T childOfChild in FindVisualChildren<T>(child))
{
yield return childOfChild;
}
}
}
}
コード:
private void Button_Click_1(object sender, RoutedEventArgs e)
{
var lines = new List<string>();
foreach (TextBox tb in WindowHelper.FindVisualChildren<TextBox>(this))
lines.Add(string.Format("{0},{1}", tb.Name, tb.Text));
foreach (ComboBox cb in WindowHelper.FindVisualChildren<ComboBox>(this))
lines.Add(string.Format("{0},{1}", cb.Name, cb.Text));
System.IO.File.WriteAllLines(@"data.csv", lines);
}