2016-04-05 13 views
0

私の場合は8個のチェックボックスがあり、各チェックボックスにはクリックイベントがあり、チェックボックスをクリックすると同じようなメソッドが呼び出されます。複数のイベントを簡略化してメソッドを使用する

public void _setting(CheckBox check) 
     { 
     ... 
     } 

そして、これは、メソッドを呼び出すためにクリックイベントを簡素化するためにどのように

private void check1_Click(object sender, RoutedEventArgs e) 
     { 
      _setting(check1); 
     } 

メソッドを呼び出す?イベントをクリックする方法のコードですかそれともチェック8までcheck1_clickのように呼び出す必要がありますか?

private void check2_Click(object sender, RoutedEventArgs e) 
      { 
       _setting(check2); 
      } 
private void check3_Click(object sender, RoutedEventArgs e) 
      { 
       _setting(check3); 
      } 
... 
private void check8_Click(object sender, RoutedEventArgs e) 
      { 
       _setting(check8); 
      } 

簡略化できますか?

答えて

3

だと思います。 check1 .. check8がクリックされているようです。その場合、あなたは、単一のイベントハンドラにすべてのイベントを割り当て、senderを使用することができます:送信者はあなたが期待して制御されていない場合

private void check_Click(object sender, RoutedEventArgs e) 
{ 
    _setting((CheckBox)sender); 
} 

、おそらくSourceまたはe.OriginalSourceです。

0
private void check1_Click(object sender, RoutedEventArgs e) 
     { 
      _setting(sender as CheckBox); 
     } 

このようにして_settingを呼び出すと、送信者はチェックボックスではなく、例外ではなくnullになります。

+0

何かが間違っていた場合、 'as'を使用すると情報が得られません。 –

関連する問題