⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainform.cs

📁 网络编程案例
💻 CS
📖 第 1 页 / 共 5 页
字号:
				prg.UpdateUI("获取邮件数目...", 0,  
					msg + "\n邮件数目为0,接收完毕\n\n");
				mo.Close(ref msg);
				return;
			}

			int pos = 0;
			for (int j=1;j<=num;j++) 
			{
				//检查是否要终止接收
				if (prg.stopFlag) 
				{
					break;
				}

				prg.UpdateUI("共接收" + num + "封邮件,正在接收" + j + "封邮件", 0, "");
				Mail m;
				if (ma.IsLeaveMessage)
				{
					m = mo.Receive(ref msg, j);
				}
				else
				{
					m = mo.Receive(ref msg, 1);
				}
				pos = (int)100*j/num;	//计算进度条的位置
				prg.UpdateUI("共接收" + num + "封邮件,正在接收" + j + "封邮件", pos, msg);
				if (m == null) 
				{
					continue;
				}
				
				m = ms.addNew(m);
				mails.Add(m.MailID, m);

				if (m.MailStorePosition == this.curMailBox)
				{
					ListViewItem lvi = new ListViewItem();
					lvi.Text = m.Sender;
					lvi.SubItems.Add(m.Recipient);
					lvi.SubItems.Add(m.Subject);
					lvi.SubItems.Add(m.Time);
					lvi.Tag = m.MailID;
					this.lvMailList.Items.Add(lvi);
				}
			}
			
			prg.UpdateUI("邮件接收完毕,关闭邮箱", 0, "");
			ok = mo.Close(ref msg);
			prg.UpdateUI("邮件接收完毕,关闭邮箱", 0, msg);

		}

		private MailAccount getMailAccountByName(string curAccount)
		{
			MailAccount retMA = null;
			if (accounts.Count>0) 
			{
				System.Collections.IEnumerator myEnumerator = accounts.GetEnumerator();
				while (myEnumerator.MoveNext())
				{
					MailAccount ma = (MailAccount)myEnumerator.Current;
					if (ma.Account == curAccount) 
					{
						retMA = ma;
					}
				}
			}
			return retMA;
		}

		//装载全部的邮件,并在不同的邮箱中显示
		private void loadMails()
		{
			mails = ms.getMails();

			if (mails.Count>0) 
			{
				this.tvBoxesList.Select();
				this.tvBoxesList.SelectedNode = this.tvBoxesList.Nodes[0];
			}
		}

		//显示不同邮箱中的邮件
		private void tvBoxesList_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
		{
			if (mails.Count==0)
			{
				return;
			}
			
			//根据不同的邮箱,显示不同的内容
			string mailbox = e.Node.Text;

			if (curMailBox == mailbox)
			{
				return;
			}

			this.curMailBox = mailbox;
			this.lvMailList.Items.Clear();
			System.Collections.IEnumerator myEnumerator = mails.Values.GetEnumerator();
			while (myEnumerator.MoveNext())
			{
				Mail m = (Mail)myEnumerator.Current;
				if (m.MailStorePosition==mailbox) 
				{
					ListViewItem lvi = new ListViewItem();
					lvi.Text = m.Sender;
					lvi.SubItems.Add(m.Recipient);
					lvi.SubItems.Add(m.Subject);
					lvi.SubItems.Add(m.Time);
					lvi.Tag = m.MailID;
					this.lvMailList.Items.Add(lvi);
				}
			}
		}

		//选择不同的邮件时,显示邮件的内容
		private void lvMailList_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			if (this.lvMailList.SelectedItems.Count>0) 
			{
				try 
				{
					System.Windows.Forms.ListViewItem lvi = this.lvMailList.SelectedItems[0];
				
					string id = System.Convert.ToString(lvi.Tag);
					if(mails.ContainsKey(id)) 
					{
						Mail m = (Mail)mails[id];
						this.rtbContent.Text = m.MailContent;
					}
				}
				catch {}
			}
		}

		//双击后编辑邮件内容
		private void lvMailList_DoubleClick(object sender, System.EventArgs e)
		{
			if (this.lvMailList.SelectedItems.Count>0) 
			{
				try 
				{
					System.Windows.Forms.ListViewItem lvi = this.lvMailList.SelectedItems[0];
				
					string id = System.Convert.ToString(lvi.Tag);
					if(mails.ContainsKey(id)) 
					{
						Mail m = (Mail)mails[id];
						NewMailForm nmf = new NewMailForm(m, this);
						nmf.ShowDialog();
					}
				}
				catch (Exception exp)
				{
					Console.WriteLine(exp.ToString());
				}
			}
		
		}

		public void AddNewMail(Mail mail) 
		{
			if (mails.ContainsValue(mail))
			{
				//更新
				ms.update(mail);				
			}
			else
			{
				//添加
				mail = ms.addNew(mail);
			}
			
			if (mail.MailStorePosition == this.curMailBox)
			{
				if (mails.ContainsValue(mail))
				{
					//更新
					for (int i=0;i<this.lvMailList.Items.Count;i++)
					{
						ListViewItem lvi = this.lvMailList.Items[i];
						if (mail.MailID == (string)lvi.Tag)
						{
							lvi.Text = mail.Sender;
							lvi.SubItems[1].Text = mail.Recipient;
							lvi.SubItems[2].Text = mail.Subject;
							lvi.SubItems[3].Text = mail.Time;
							lvi.Tag = mail.MailID;
						}
					}
					this.lvMailList.Update();
				}
				else
				{
					//添加
					ListViewItem lvi = new ListViewItem();
					lvi.Text = mail.Sender;
					lvi.SubItems.Add(mail.Recipient);
					lvi.SubItems.Add(mail.Subject);
					lvi.SubIt

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -