C#コントロール名によるコントロールオブジェクトの取得
需要:1つのプロジェクトで、1つのコントロール選択機能を実現するには、1つずつ判断すると、コードは非常に見苦しくなります.コントロール名に規則があるため、コントロールに基づいて直接対応するコントロールオブジェクトを見つけることができますか?
インプリメンテーション:反射の使用はんしゃのしよう
WPFで使用可能:
Winformで使用可能:
WPFはControlsに似ている.Find:
インプリメンテーション:反射の使用はんしゃのしよう
WPFで使用可能:
object o = this.GetType().GetField(name, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);
return ((Control)o);
Winformで使用可能:
private void button2_Click(object sender, EventArgs e)
{
((Button)(this.Controls.Find("button1", false)[0])).Text = "123";
}
WPFはControlsに似ている.Find:
private void Button_Click(object sender, RoutedEventArgs e)
{
((Button)this.FindName("Button1")).Content = "123";
}