更新:私は自分の問題を解決できました。以下のコードを使用して、XML保存後にMessageBoxを移動し、タイマーを100msから400msに変更しました。私は今、1つのボックスが表示され、神に感謝します。 List Array(ActListTask)で単一の値(ActReminded)を更新するのに短時間で済む人がいれば、それは知っておくとよいでしょう。MessageBoxを一度表示させる(タイマーの中のコード)
私はMessageBoxの表示に少し問題があります。私に迷惑をかけずにタイマーを見せてください。私は実際に私はすべてを繰り返しリマインダーを望んでいないだろうと私はそれが示されているか否か、リマインダーの状態に保持することをお勧めしますことを決めた
public class ActiveTasks
{
//Properties here
}
public List<ActiveTasks> ActTaskList = new List<ActiveTasks>();
for (int i = 0; i < ListActive.Items.Count; i++)
{
if (DTime.Date == newDateTime.Date)
{
if (newDateTimeLeft.CompareTo(TimeSpan.Zero) <= 0 && ActTaskList[i].ActReminded != "true")
{
MessageBox.Show("!!!!");
ActTaskList.Add(new ActiveTasks()
{
ActTitle = ActTaskList[i].ActTitle,
ActDesc = ActTaskList[i].ActDesc,
ActDate = ActTaskList[i].ActDate,
ActTime = ActTaskList[i].ActTime,
ActStatus = ActTaskList[i].ActStatus,
ActReminded = "true",
ActRepeat = ActTaskList[i].ActRepeat
});
ListActive.Items.RemoveAt(i);
ActTaskList.RemoveAt(i);
XDocument XmlActTasks = GenerateActiveListToXML(ActTaskList);
}
}
}
:ここに私が取り組んできたコードの一部ですプログラムが開かれる時間。私はActTaskListの個々の部分を更新する方法を知らないので、私はただそれを再追加してから元のものを削除しました。このコードは、発生した場合には、リマインダーのステータスをfalseからtrueに変更することを認識します。私はOk'edすべてのスパムをした後。だから私はすべてのメッセージボックスを閉じて管理した後、MessageBoxを停止します。ただし、スパムを止めるわけではありません。タイマーを100msに設定したという事実とは関係がありますか?あるいは、彼らはタイマーの中にいなくてもメッセージボックスを表示させる別の方法かもしれませんか?
ここで、タイマーを宣言するコードはありますか?どのタイプのタイマーを使用していますか? –
'bool'を持っています。ユーザーが表示されたときに' bool'をfalseに設定し、 'bool'がtrueのときにのみ警告を出します。 – Matthew
**何を達成しようとしていますか?**その音から、一定の遅延の後に1つのメッセージボックスが必要です。それはあなたが欲しいものですか? – Ryan