【发布时间】:2016-02-29 23:56:12
【问题描述】:
我在 ListView 中有 3 列。发件人、主题、日期 我正在使用 OpenPop 库。
private int numberofallmessages = 0;
private int countMsg = 0;
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
OpenPop.Pop3.Pop3Client PopClient = new OpenPop.Pop3.Pop3Client();
PopClient.Connect("mail", 110, false);
PopClient.Authenticate("me", "me",
OpenPop.Pop3.AuthenticationMethod.UsernameAndPassword);
List<string> uids = PopClient.GetMessageUids();
int messageCount = PopClient.GetMessageCount() -1;
numberofallmessages = messageCount;
allMessages = new List<OpenPop.Mime.Message>(messageCount);
for (int i = messageCount; i > 0; i--)//for (int i = messageCount - 1; i > -1; i--)
{
if (backgroundWorker1.CancellationPending == true)
{
e.Cancel = true;
return;
}
string currentUidOnServer = uids[i];
if (!seenUids.Contains(currentUidOnServer))
{
if (i > 0)
allMessages.Add(PopClient.GetMessage(i));
SaveFullMessage(PopClient.GetMessage(i), i);
w = new StreamWriter(emailsIDSFile, true);
w.WriteLine(currentUidOnServer);
w.Close();
int nProgress = (messageCount - i + 1) * 100 / messageCount;
backgroundWorker1.ReportProgress(nProgress, PopClient.GetMessageCount().ToString() + "/" + i);
}
}
PopClient.Disconnect();
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
pbt.Value = e.ProgressPercentage;
pbt.Text = e.ProgressPercentage.ToString() + "%";
pbt.Invalidate();
label8.Text = e.UserState.ToString();
label8.Visible = true;
lvnf.Items.Add(new ListViewItem(new string[]
{
allMessages[countMsg].Headers.From.ToString(), //From Column
allMessages[countMsg].Headers.Subject, //Subject Column
allMessages[countMsg].Headers.DateSent.ToString() //Date Column
}));
countMsg += 1;
}
问题出在我认为的 progresschanged 事件中。我将项目添加到每一列的位置。
当它向 ListView 添加电子邮件时,我看到它是这样的:
问题出在日期列上,日期很好,但时间不是我的时间。不知道时间在什么地方,但在我这里现在是凌晨 1:52
如何获取/设置我所在位置的时间? 我在行中找不到:
allMessages[countMsg].Headers.DateSent.ToString()
如何将其更改为我的时间。
【问题讨论】:
-
不确定我是否理解,但您是想对实际列表进行排序还是只是想将日期列中的时间调整为当地时间?
-
我认为排序很好,最新的项目添加在顶部。问题是“将日期列中的时间调整为当地时间”。
-
如果您的问题是您刚刚在上面的评论中指定的,请edit您的问题标题,以便准确反映您的问题。