📄 dialogform.cs
字号:
SearchStr = "def";
}
else if ((e.KeyCode == System.Windows.Forms.Keys.D4))
{
// 4
SearchStr = "ghi";
}
else if ((e.KeyCode == System.Windows.Forms.Keys.D5))
{
// 5
SearchStr = "jkl";
}
else if ((e.KeyCode == System.Windows.Forms.Keys.D6))
{
// 6
SearchStr = "mno";
}
else if ((e.KeyCode == System.Windows.Forms.Keys.D7))
{
// 7
SearchStr = "pqrs";
}
else if ((e.KeyCode == System.Windows.Forms.Keys.D8))
{
// 8
SearchStr = "tuv";
}
else if ((e.KeyCode == System.Windows.Forms.Keys.D9))
{
// 9
SearchStr = "wxyz";
}
else if ((e.KeyCode == System.Windows.Forms.Keys.D0))
{
// 0
}
*/
if ((e.KeyCode == System.Windows.Forms.Keys.F8))
{
// *
SearchStr = "Top";
}
else if ((e.KeyCode == System.Windows.Forms.Keys.F9))
{
// #
SearchStr = "Bottom";
}
//如果有检索操作
if (SearchStr != "" && FileListView.Items.Count > 0)
{
if (SearchStr == "Top")
{
FileListView.Items[0].Selected = true;
FileListView.Items[0].Focused = true;
FileListView.EnsureVisible(0);
}
else if (SearchStr == "Bottom")
{
FileListView.Items[FileListView.Items.Count - 1].Selected = true;
FileListView.Items[FileListView.Items.Count - 1].Focused = true;
FileListView.EnsureVisible(FileListView.Items.Count - 1);
}
/*
else //检索
{
for (int i = SelectItem.Index + 1; i < FileListView.Items.Count; i++)
{
ListViewItem EachItem = FileListView.Items[i];
bool FoundItem = false;//是否检索到合适的内容
for (int j = 0; j < SearchStr.Length; j++)
{
string EachChar = SearchStr.Substring(j, 1);
if (EachItem.Text.ToLower().StartsWith(EachChar))
{
EachItem.Selected = true;
EachItem.Focused = true;
FileListView.EnsureVisible(EachItem.Index);
FoundItem = true;
break;
}
}
//检索到合适内容,退出循环
if (FoundItem) break;
}
}
*/
FileListView.Focus();
}
}
}
//执行相关操作
private void FileListView_ItemActivate(object sender, EventArgs e)
{
ItemFileInfo ThisInfo = (ItemFileInfo)FileInfoList[SelectItem.Index];
if (ThisInfo.FileType == ItemType.File)
{
if (CheckFile(ThisInfo.FullPach))
{
FileName = ThisInfo.FullPach;
this.DialogResult = DialogResult.Yes;
this.Close();
}
}
else if (ThisInfo.FileType == ItemType.Directory)
{
ReflashList(ThisInfo.FullPach);
}
}
//向上
private void PreDirMenu_Click(object sender, EventArgs e)
{
ReflashList(GetPreDirectory(NowDir));
}
//选中Item
private void FileListView_SelectedIndexChanged(object sender, EventArgs e)
{
if (FileListView.SelectedIndices.Count > 0)
{
if (((ItemFileInfo)FileInfoList[SelectItem.Index]).FileType == ItemType.File)
{
FileNameEnter.Text = SelectItem.Text;
}
else
{
FileNameEnter.Text = "";
}
}
}
//删除
private void DelMenu_Click(object sender, EventArgs e)
{
if (SelectItem != null)
{
//记录被删除的索引
int SelectIndex = SelectItem.Index;
ItemFileInfo TheInfo = (ItemFileInfo)FileInfoList[SelectItem.Index];
if(TheInfo.FileType == ItemType.File)
{
if (MessageBox.Show("确实要删除文件 " + TheInfo.FullPach + " 吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
{
try
{
File.Delete(TheInfo.FullPach);
FileListView.Items.RemoveAt(SelectItem.Index);
//选择下一Item
SelectNextItem(SelectIndex);
FileInfoList.RemoveAt(SelectIndex);
}
catch (Exception er)
{
ShowError(er.Message);
}
}
}
else if(TheInfo.FileType == ItemType.Directory)
{
if (MessageBox.Show("确实要删除文件夹 " + TheInfo.FullPach + " 吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
{
try
{
Directory.Delete(TheInfo.FullPach,true);
FileListView.Items.RemoveAt(SelectItem.Index);
//选择下一Item
SelectNextItem(SelectIndex);
FileInfoList.RemoveAt(SelectIndex);
}
catch (Exception er)
{
ShowError(er.Message);
}
}
}
FileListView.Focus();
}
}
//新建文件夹
private void NewDirMenu_Click(object sender, EventArgs e)
{
InputForm NewDirForm = new InputForm();
NewDirForm.Icon = this.Icon;
NewDirForm.Text = ((MenuItem)sender).Text;
NewDirForm.Info = "新建文件夹名称";
NewDirForm.FileName = "新建的文件夹";
try
{
if (NewDirForm.ShowDialog() == DialogResult.Yes)
{
if (NewDirForm.FileName != "")
{
if (CheckNameIsOK(NewDirForm.FileName))
{
string NewDirName = MixToFullPath(NowDir, NewDirForm.FileName);
if (!Directory.Exists(NewDirName))
{
Directory.CreateDirectory(NewDirName);
ListViewItem NewItem = new ListViewItem(NewDirForm.FileName);
NewItem.ImageIndex = 0;
FileListView.Items.Add(NewItem);
ItemFileInfo newInfo = new ItemFileInfo();
newInfo.FileType = ItemType.Directory;
newInfo.FullPach = NewDirName;
FileInfoList.Add(newInfo);
NewItem.Focused = true;
NewItem.Selected = true;
FileListView.Focus();
FileListView.EnsureVisible(NewItem.Index);
}
else
{
ShowError("文件夹 " + NewDirName + " 已经存在,无法重复建立.");
}
}
else
{
ShowError("新建文件夹名称包含非法字符.");
}
}
}
}
catch (Exception er)
{
ShowError(er.Message);
}
finally
{
NewDirForm.Dispose();
NewDirForm = null;
}
}
//重命名
private void RenMenu_Click(object sender, EventArgs e)
{
InputForm RenameForm = new InputForm();
ItemFileInfo ThisInfo = (ItemFileInfo)FileInfoList[SelectItem.Index];
string TempStr = "";
if (ThisInfo.FileType == ItemType.Directory) TempStr = "文件夹";
else if (ThisInfo.FileType == ItemType.File) TempStr = "文件";
RenameForm.Icon = this.Icon;
RenameForm.Text = ((MenuItem)sender).Text;
RenameForm.Info = "新的" + TempStr + "名称";
RenameForm.FileName = SelectItem.Text;
try
{
if (RenameForm.ShowDialog() == DialogResult.Yes)
{
if (RenameForm.FileName != "" && RenameForm.FileName != SelectItem.Text)
{
if (CheckNameIsOK(RenameForm.FileName))
{
string NewName = MixToFullPath(NowDir, RenameForm.FileName);
if ((ThisInfo.FileType == ItemType.File && !File.Exists(NewName)) || (ThisInfo.FileType == ItemType.Directory && !Directory.Exists(NewName)))
{
if (ThisInfo.FileType == ItemType.Directory)
Directory.Move(ThisInfo.FullPach, NewName);
else if (ThisInfo.FileType == ItemType.File)
File.Move(ThisInfo.FullPach, NewName);
SelectItem.Text = RenameForm.FileName;
ItemFileInfo NewInfo = new ItemFileInfo();
NewInfo.FileType = ThisInfo.FileType;
NewInfo.FullPach = NewName;
FileInfoList.RemoveAt(SelectItem.Index);
FileInfoList.Insert(SelectItem.Index, NewInfo);
FileListView.EnsureVisible(SelectItem.Index);
FileListView.Focus();
}
else
{
ShowError(TempStr + " " + NewName + " 已经存在,无法重命名.");
}
}
else
{
ShowError(TempStr + "名称包含非法字符.");
}
}
}
}
catch (Exception er)
{
ShowError(er.Message);
}
finally
{
RenameForm.Dispose();
RenameForm = null;
}
}
//查看-详细信息
private void DetilMenu_Click(object sender, EventArgs e)
{
DefaultViewType = ViewType.Detial;
DetilMenu.Checked = true;
ListMenu.Checked = false;
FileListView.View = View.Details;
}
//查看-列表
private void ListMenu_Click(object sender, EventArgs e)
{
DefaultViewType = ViewType.List;
DetilMenu.Checked = false;
ListMenu.Checked = true;
FileListView.View = View.SmallIcon;
}
//取消
private void CancelMenu_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
//刷新
private void ReflashMenu_Click(object sender, EventArgs e)
{
ReflashList(NowDir);
}
//关于
private void AboutMenu_Click(object sender, EventArgs e)
{
AboutForm ShowAbout = new AboutForm();
ShowAbout.Icon = this.Icon;
ShowAbout.ShowDialog();
ShowAbout.Dispose();
ShowAbout = null;
if (WindowHandle != IntPtr.Zero)
API.SetForegroundWindow(WindowHandle);
}
//窗口改变大小时
private void DialogForm_Resize(object sender, EventArgs e)
{
//FileNameEnter.Width = this.Width - FileNameEnter.Left - 3;
//FileListView.Width = this.Width - FileListView.Left - 3;
//FileListView.Height = this.Height - FileListView.Top - 3;
//调整控件位置
FileListView.Width = this.Width - 6;
FileListView.Height = this.Height - FileListView.Top - 3;
PleaseWaitInfo.Width = this.Width - 6;
Graphics g = this.CreateGraphics();
SizeF FileNameLabelSizeF = g.MeasureString(FileNameLabel.Text + " ", FileNameLabel.Font);
FileNameLabel.Size = FileNameLabelSizeF.ToSize();
FileNameEnter.Left = FileNameLabel.Right;
FileNameEnter.Width = this.Width - FileNameEnter.Left - 3;
SizeF FileListViewColumn1 = g.MeasureString(FileListView.Columns[1].Text + " ", FileListView.Font);
FileListView.Columns[1].Width = FileListViewColumn1.ToSize().Width;
FileListView.Columns[0].Width = FileListView.Width - 10 - FileListView.Columns[1].Width;
g.Dispose();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -