有一个接收字母的功能:
private void button1_Click(object sender, EventArgs e)
{
ListViewItem list = new ListViewItem("Messages");
using (imap = new Imap())
{
imap.ConnectSSL("imap.yandex.ru");
imap.Login("----", "---");
imap.SelectInbox();
List<long> uids = imap.SearchFlag(Flag.All);
IMail email;
listView1.Items.Clear();
foreach (long uid in uids)
{
ListViewItem lvi = new ListViewItem();
email = new MailBuilder().CreateFromEml(imap.GetMessageByUID(uid));
lvi.SubItems.Add(email.Subject);
listView1.Items.Add(lvi);
}
}
}
我尝试传递给IMAIL objecto oher表单的另一种形式:
private void button2_Click(object sender, System.EventArgs e)
{//тут надо пулучать выбранный UID
//получим выделенный элемент
int SelectedMessageIndex = listView1.FocusedItem.Index;
IMail email2 = new MailBuilder().CreateFromEml(imap.GetMessageByUID(SelectedMessageIndex));
MessageForm messageForm = new MessageForm(SelectedMessageIndex,email2); //нужно передать нужный email
messageForm.ShowDialog();
}
但我收到错误:
无法访问清算对象。 对象名称:“ClientBase”。
答案 0 :(得分:0)
您的throwExceptions
变量看起来像是一个类成员。问题在于:
imap
...在using (imap = new Imap())
中。当button1_Click()
代码块结束时,您的using()
对象将被释放。当您在imap
中再次尝试使用它时,它已经消失了。您需要不在button2_Click()
中处置对象或创建新的imap对象。