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

📄 form3.cs

📁 C#写的Email邮件客户端程序skyemail.
💻 CS
📖 第 1 页 / 共 4 页
字号:
							temp += szTemp+CRLF;
						}
						else
						{
								temp += szTemp+CRLF;
						}
					}
					
				}
			j=j+1;	
			}
			sr.Close();  
			StreamWriter sw =new StreamWriter(@fname,false,Encoding.GetEncoding("gb2312")) ;
			sw.Write(temp);
			sw.Close(); 
	}

		private void menuItem5_Click(object sender, System.EventArgs e)
		{
			if(listView1.SelectedItems.Count>0)
			{
				int g=listView1.SelectedItems.Count-1; 
				int d=(int)listView1.SelectedItems[g].Index; 
				if(g!=-1)
				{	
					string f=listView1.Items[d].Font.FontFamily.Name;  
					float f1=listView1.Items[d].Font.Size; 
					listView1.Items[d].Font= new Font(f,f1);
					this.ChangeSta(filename,"新"); //修改文件中的阅读状态
					listView1.Items[d].SubItems[0].Text="旧";  
				}
			}
		}

		private void menuItem10_Click(object sender, System.EventArgs e)
		{
			if(listView1.SelectedItems.Count>0)
			{
				int g=listView1.SelectedItems.Count-1; 
				int d=(int)listView1.SelectedItems[g].Index; 
				if(g!=-1)
				{	
					listView1.Items[d].Font= new Font(listView1.Items[g].Font,listView1.Items[g].Font.Style | FontStyle.Bold );
					this.ChangeSta(filename,"旧"); //修改文件中的阅读状态
					listView1.Items[d].SubItems[0].Text="新";  
				}
			}
		}

		private void listView2_DoubleClick(object sender, System.EventArgs e)
		{
			if(listView2.SelectedItems.Count>0)
			{
				string filepath=Path.GetTempPath()+listView2.SelectedItems[0].Text; 
				int f=ShellExecute(0,"open",filepath,"","",1);
			}
		}

		private void menuItem21_Click(object sender, System.EventArgs e)
		{
			this.DispAll(filename); 
		}

		private void menuItem24_Click(object sender, System.EventArgs e)
		{
			Frmdir frmd=new Frmdir();
			frmd.ShowDialog();
			frmd.Dispose(); 
			this.Getdir(); 
		}

		private void menuItem25_Click(object sender, System.EventArgs e)
		{
			//删除选定的文件夹
			//默认文件夹不能被删除
			string dstr="本地文件夹/收件箱/发件箱/垃圾箱";
			if(dstr.IndexOf(treeView1.SelectedNode.Text)!=-1)
			{
				MessageBox.Show ("默认的文件夹不能删除!","sky软件");
			}
			else
			{
				
				string mstr=treeView1.SelectedNode.Parent.Text+ (char)92 + treeView1.SelectedNode.Text+"\r\n" ; 
				//还要将文件夹名称删除的同时进行存放文件的删除
				//文件夹删除放入垃圾箱中,当垃圾箱中进行删除操作时则真正将文件删除,删除前弹出对话框提示是否删除
				
				//string sstr="\r\n";
				StreamReader sr=new StreamReader(@"user.dr",Encoding.GetEncoding("GB2312"));
				string con=sr.ReadToEnd();
				sr.Close();
				int h=con.IndexOf(mstr);
				string con1="";
				DialogResult d=MessageBox.Show("文件夹删除后将不能恢复,该文件夹包含邮件信息都不能恢复!","sky软件",MessageBoxButtons.YesNo);
				if(d==DialogResult.Yes)
				{
					con1=con.Remove(h,mstr.Length);  
					string[] f=mstr.Trim().Split((char)92);  
					string parstr=f[0];
					string childstr=f[1];
					for(int i=0;i<treeView1.Nodes.Count;i++)
					{
						if(treeView1.Nodes[i].Text.Equals(parstr))  //如果第一层就已经找到了父节点,则判断有文件夹的名称
						{
							for(int r=0;r<treeView1.Nodes[i].Nodes.Count;r++)
							{
								if(treeView1.Nodes[i].Nodes[r].Text.Equals(childstr))
								{
									string fname="";
									fname=childstr.Trim() +i + "0"+".wg";
									FileInfo g2=new FileInfo(fname);
									if(g2.Exists)
									{
										treeView1.Nodes.Remove(treeView1.SelectedNode) ;
										g2.Refresh(); 
										g2.Delete();
										break;
									}
								}
							}
						}
				
						for(int j=0;j<treeView1.Nodes[i].Nodes.Count;j++)
						{
							if(treeView1.Nodes[i].Nodes[j].Text.Equals(parstr))  
							{
								for(int r=0;r<treeView1.Nodes[i].Nodes[j].Nodes.Count;r++)
								{
									if(treeView1.Nodes[i].Nodes[j].Nodes[r].Text.Equals(childstr))
									{
										string fname=childstr.Trim() + j + "1"+".wg";
										FileInfo g3=new FileInfo(fname);
										if(g3.Exists)
										{
											g3.Delete();
											treeView1.Nodes.Remove(treeView1.SelectedNode) ;
											break;
										}
									}
								}
								break;
							}
						}
					}
				
					StreamWriter sw=new StreamWriter (@"user.dr",false,Encoding.GetEncoding("GB2312"));
					sw.Write(con1);
					sw.Close();
				
				}
			}
		}
		private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
		{
			mySelectedNode = treeView1.GetNodeAt(e.X, e.Y);
			if (mySelectedNode != null && mySelectedNode.Parent != null)
			{
				treeView1.SelectedNode=mySelectedNode;
			
			}
		}

		private void contextMenu4_Popup(object sender, System.EventArgs e)
		{
			//对右键菜单删除的动态判断禁用,避免删除默认文件夹
				string dstr="本地文件夹/收件箱/发件箱/垃圾箱";
			
				if(dstr.IndexOf(treeView1.SelectedNode.Text)!=-1)
				{
					this.contextMenu4.MenuItems[4].Enabled=false;   
					this.contextMenu4.MenuItems[5].Enabled=false;   

				}
				else
				{
					this.contextMenu4.MenuItems[4].Enabled=true;   
					this.contextMenu4.MenuItems[5].Enabled=true;   
				}
			
		}

		private void menuItem26_Click(object sender, System.EventArgs e)
		{
			//对用户自定义文件夹名称的重命名
			string dstr="本地文件夹/收件箱/发件箱/垃圾箱";
			if(dstr.IndexOf(treeView1.SelectedNode.Text)!=-1)
			{
				MessageBox.Show ("默认的文件夹不能重命名!","sky软件");
			}
			else
			{
				treeView1.LabelEdit=true; //使标签可以编辑
				treeView1.SelectedNode.BeginEdit();
				

			}
		}
		
		private void treeView1_AfterLabelEdit(object sender, System.Windows.Forms.NodeLabelEditEventArgs e)
		{
			string temp1="";
			if (e.Label != null)
			{
				if(e.Label.Length > 0)
				{
					bool ndirname=true;
					for(int g=0;g<treeView1.SelectedNode.Parent.Nodes.Count;g++  )
					{
						if(g!=treeView1.SelectedNode.Index)
						{
							if(e.Label.Trim().Equals(treeView1.SelectedNode.Parent.Nodes[g].Text.Trim()))
							{
								ndirname=false;
							}
						}
					}

					if (e.Label.IndexOfAny(new char[]{'@', '.', ',', '!'}) == -1 && ndirname)
					{
						e.Node.EndEdit(false);
						string mstr=treeView1.SelectedNode.Parent.Text+ (char)92 + treeView1.SelectedNode.Text ; 
						string sstr=treeView1.SelectedNode.Parent.Text+ (char)92 + e.Label.Trim(); 
						StreamReader sr=new StreamReader(@"user.dr",Encoding.GetEncoding("GB2312"));
						string con=sr.ReadToEnd();
						sr.Close();
						con=con.Replace(mstr,sstr);
						StreamWriter sw=new StreamWriter (@"user.dr",false,Encoding.GetEncoding("GB2312"));
						sw.Write(con);
						sw.Close();
						//在此将修改后的文件夹名称进行保存
						//然后将文件夹名称进行更改
						string[] f1=mstr.Trim().Split((char)92);  
						string parstr=f1[0];
						string childstr=f1[1];
						for(int i=0;i<treeView1.Nodes.Count;i++)
						{
							if(treeView1.Nodes[i].Text.Equals(parstr))  //如果第一层就已经找到了父节点,则判断有没有重名的文件夹
							{
								for(int r=0;r<treeView1.Nodes[i].Nodes.Count;r++)
								{
									if(treeView1.Nodes[i].Nodes[r].Text.Equals(childstr))
									{
										temp1=childstr.Trim() + "0"+".wg";
										sstr=sstr.Remove(0,sstr.IndexOf(@"\")+1);  
										sstr=sstr + "0"+".wg";
										break;
									}
								}
							}
							for(int j=0;j<treeView1.Nodes[i].Nodes.Count;j++)
							{
								if(treeView1.Nodes[i].Nodes[j].Text.Equals(parstr))  
								{
									for(int r=0;r<treeView1.Nodes[i].Nodes[j].Nodes.Count;r++)
									{
										if(treeView1.Nodes[i].Nodes[j].Nodes[r].Text.Equals(childstr))
										{
											temp1=childstr.Trim()+ "1"+".wg";
											sstr=sstr.Remove(0,sstr.IndexOf(@"\"));  
											sstr=sstr + "1"+".wg";
										}
									}
								}
							}
					
						
						}
						
						FileInfo d1=new FileInfo(temp1);
						//
						if(d1.Exists)
						{
							d1.MoveTo(sstr) ;
						}

					}
					else
					{
						e.CancelEdit = true;
						if(ndirname)
						{
							MessageBox.Show("修改后的字符含有非法字符!","sky软件");
						}
						else
						{
							MessageBox.Show("修改后的名称和已有文件夹重名!","sky软件");
						}
						e.Node.BeginEdit();
					}
				}
				else
				{
					e.CancelEdit = true;
					MessageBox.Show("修改后的文件夹不能为空!","sky软件");
					e.Node.BeginEdit();
				}
				this.treeView1.LabelEdit = false;
				
			}
		}

		private void menuItem8_Click(object sender, System.EventArgs e)
		{
			//邮件转移功能,将指定邮件保存到指定文件夹
			Frmmove g=new Frmmove();
			g.ShowDialog();
			string h=g.getfname(); 
			if(h.Length >1)//判断选中了文件夹并且执行的是确定按钮,如果是取消按钮则不执行邮件转移的代码
			{
				this.MailMove(h); 
			}
		}
		private void MailMove(string fname)
		{
			//邮件转移模块代码
			//判断当前选中的邮件ID
			//判断当前选中的邮件的文件夹
			//将转移后的邮件写回该文件夹
			//将选中邮件分离出来的内容追加到目的文件夹内的
			//此模块的功能和邮件删除模块基本一致
			int i;
			StreamReader sr =new StreamReader(@filename,Encoding.GetEncoding("gb2312")) ;
			bool error =false;
			int j=0;
			string temp="";
			string deltemp="";
			while(!error) 
			{	
				string szTemp="";
				while(szTemp!=".")
				{
					szTemp = sr.ReadLine();
					if( szTemp==null) 
					{szTemp="";error=true;break; }
					else
					{
						bool wf=true;
						for(i=0;i<listView1.SelectedItems.Count;i++)
						{
								
							if(j==(int)listView1.SelectedItems[i].Tag)
							{
								wf=false;

							}
						}
						if(wf)
						{
									
							temp += szTemp+CRLF;
						}
						else
						{
							deltemp+= szTemp+CRLF;
							//将删除的邮件写入一删除邮件中
						}
							
					}
				}
				j=j+1;
			}
			sr.Close();  
			StreamWriter sw =new StreamWriter(@filename,false,Encoding.GetEncoding("gb2312")) ;
			sw.Write(temp);
			sw.Close(); 
			sw =new StreamWriter(fname,false,Encoding.GetEncoding("gb2312")) ;
			sw.Write(deltemp);
			sw.Close(); 
			DispAll(filename); 
		}
		public enum SortTypes
		{
			SortText,SortNumeric,SortDate
		}
		public class ListViewSorter : IComparer
		{
			int col;
			SortOrder so;
			SorterColumns columns;
			public ListViewSorter()
			{
				col=0;
				so=SortOrder.Ascending;
				columns=new SorterColumns();
			}
			public int Compare(object x, object y)
			{
				string s1;
				string s2;
				if (col==0)
				{
					s1=((ListViewItem)x).Text;
					s2=((ListViewItem)y).Text;
				}
				else
				{
					s1=((ListViewItem)x).SubItems[col].Text;
					s2=((ListViewItem)y).SubItems[col].Text;
				}

				if (so==SortOrder.Descending)
				{
					string temp;

					temp=s1;
					s1=s2;
					s2=temp;
				}
				switch (columns[col].SortType)
				{
					case SortTypes.SortText :
						return s1.CompareTo(s2);
					case SortTypes.SortNumeric :
						return long.Parse(s1).CompareTo(long.Parse(s2));
					case SortTypes.SortDate :
						return DateTime.Parse(s1).CompareTo(DateTime.Parse(s2));
					default :
						return 0;
				}
			}

			public int Column
			{
				get { return col; }
				set { col=value; }
			}
			public SortOrder Sorting
			{
				get { return so; }
				set { so=value; }
			}
			public void SwitchSortOrder()
			{
				if (so==SortOrder.None)
					so=SortOrder.Ascending;
				else if (so==SortOrder.Ascending)
					so=SortOrder.Descending;
				else
					so=SortOrder.Ascending;
			}
			public SorterColumns Columns
			{
				get { return columns; }
			}
			public class SorterColumns
			{
				SorterColumn[] columns;
				int count;

				private void NewSize(int newsize)
				{
					int i;

					columns=new SorterColumn[count];
					for (i=0;i<count;i++)
					{
						columns[i]=new SorterColumn(SortTypes.SortText);
					}
				}

				public SorterColumns()
				{
					count=1;
					NewSize(count);
				}

				public SorterColumn this [int index]
				{
					get { return columns[index]; }
				}

				public int Count
				{
					get { return count; }
					set 
					{
						count=value;
						NewSize(count);;
					}
				}
			}

			public class SorterColumn
			{
				SortTypes st;

				public SorterColumn()
				{
					st=SortTypes.SortText;
				}

				public SorterColumn(SortTypes SortType)
				{
					st=SortType;
				}

				public SortTypes SortType
				{
					get { return st; }
					set { st=value; }
				}
			}
		}
		
	}

}

⌨️ 快捷键说明

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