📄 form3.cs
字号:
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 + -