更新:我已经设法解决我的问题。使用下面的代码,我移动我的MessageBox后,我的XML保存并将计时器从100ms更改为400ms。我现在有1个盒子出现,谢天谢地。虽然如果有人在List数组(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;在我确定了所有的垃圾邮件之后。所以一旦我设法关闭所有的Messagebox,它就会停止MessageBox。但是,它不会阻止垃圾邮件。这是否与我将计时器设置为100ms的事实有关?或者他们可以成为另一种让消息框出现而不在定时器内的方式?
你在哪里声明了定时器?你正在使用哪种类型的计时器? – 2012-04-02 18:40:58
有一个'bool',当用户出现时,将'bool'设置为false,只有当'bool'为true时才会提醒。 – Matthew 2012-04-02 18:41:23
**您想要完成什么?**从它的声音中,您需要一定的延迟后的一个消息框。那是你要的吗? – Ryan 2012-04-02 18:41:35