質問: ((Button)sender).Name.Replace("Button", ""); switch (btnName) { case "A": //ボタンAが押された funcA(); break; case "B": //ボタンBが押された funcB(); break; } } ``` 関数はイメージです。徐々にスライドバーを動かすような処理をしています。実際は複数のスライドバーを順番に動かしているためfor文が幾つかあります。
回答: お二方の回答ありがとうございました。 私の力不足のため解決に至らず申し訳ありません。 同じボタンの二度押しの対応は諦めました。 根本的な解決にはなってませんがスライダーの値を直接変える処理がfor文で沢山あっただけなので一つ関数をかませて無理やりしました。 ``` int currentMotion = -1; //ボタンAが押された時 private async void funcA() { int motion = 1; for(int i =0;i<50;i++) { //処理A setSliderValue(i, motion); await Task.Delay(50); } } //ボタンBが押された時 private async void funcB() { int motion = 2; for(int i =50;i>0;i--) { //処理B setSliderValue(i, motion); await Task.Delay(50); } } // スライダーに値を送る void setSliderValue(int value, int motion) { if(motion != currentMotion) return; Slider.Value = value; } //何かしらのボタンが押された時 private void Buttons_Clicked(object sender, RoutedEventArgs e) { String btnName = ((Button)sender).Name.Replace("Button", ""); switch (btnName) { case "A": //ボタンAが押された currentMotion = 1; funcA(); break; case "B": //ボタンBが押された currentMotion = 2; funcB(); break; } } ```