フォームの上部に次のものがあります。
public static int hoursInt;
public static int minutesInt;
public static int secondsInt;
public static int CompletedIn24;
numericUpDown
次に、新しいランナーを選択するときにボックスをゼロにリセットするために、次のようにします。
private void lstRunners_SelectedIndexChanged(object sender, EventArgs e)
{
Runner selectedRunner = (Runner)lstRunners.SelectedItem;
numericUpDown1.Value = 0;
numericUpDown2.Value = 0;
numericUpDown3.Value = 0;
}
次に、Finish
ボタンクリックイベントで次のことを行います。
hoursInt = Convert.ToInt32(numericUpDown1.Value);
minutesInt = Convert.ToInt32(numericUpDown2.Value);
secondsInt = Convert.ToInt32(numericUpDown3.Value);
if (lstRunners.SelectedIndex > -1 && hoursInt + minutesInt + secondsInt != 0)
{
// Obtain selected climber
Runner selectedRunner = (Runner)lstRunners.SelectedItem;
selectedRunner.Hours = hoursInt;
selectedRunner.Minutes = minutesInt;
selectedRunner.Seconds = secondsInt;
var expertRunner = selectedRunner as Expert;
if (expertRunner != null)
{
expertRunner.UponFinish();
}
これが私のオーバーライドされたメソッドですExpert : Runner
:
public override void UponFinish()
{
base.UponFinish();
// The integer must increment by one if the time is 24:00:00 or less i.e. 23:59:59 would increment the integer as well
if (Hours < 24 || (Hours == 24 && Minutes == 0 && Seconds == 0))
{
CompletedIn24++;
}
}
現在、何かが必要かどうかわからないので、中括弧の中にUponFinish()
メソッドにRunner
は何もありませんか?
CompletedIn24
ボタンクリック時に動作するかどうか整数値を文字列に出力してみましたが、エキスパートランナーを選択して24:00:00以下の時間でも値がゼロのままでした。整数が増加しません。何が問題の原因なのかわかりません。
どんな助けでも大歓迎です。