📄 mainform.cs
字号:
using System;
using System.Windows.Forms;
using System.Collections.Generic;
using System.Collections;
using Core.Services;
using Core.Services.Management;
using Core.Services.Sdk;
using System.IO;
using System.Diagnostics;
namespace Signercompress
{
public partial class MainForm : Form
{
private PluginManager pm;
private IconListManager im;
private ArrayList al=new ArrayList();
private string RenameCache;
private List<string> ToCopies=new List<string>();
private bool DelOrigin = false;
private void Menu_Click(object sender, EventArgs e)
{
if (al.Count > 0)
{
ToolStripMenuItem t = sender as ToolStripMenuItem;
foreach (BasePluginInfo p in pm.PluginInfos)
{
if (t.Tag.ToString().ToUpper() == p.Guid.ToString().ToUpper())
{
tslStatus.Text = "正在使用" + p.Name + "处理...";
pm.AssignTask(t, al, new ProgressChangedEventHandler(this.Progress_Changed));
tsbStop.Visible = true;
break;
}
}
}
}
private void Progress_Changed(object sender, Core.Services.Sdk.ProgressChangedEventArgs e)
{
this.toolStripProgressBar1.Maximum = e.Max;
if (toolStripProgressBar1.Maximum > e.Progress)
this.toolStripProgressBar1.Value = e.Progress;
else
{
this.toolStripProgressBar1.Value = e.Progress;
this.toolStripProgressBar1.Value = 0;
tslStatus.Text = "就绪";
tsbStop.Visible = false;
Refresh();
}
}
public MainForm()
{
InitializeComponent();
}
private void MainForm_Load(object sender, EventArgs e)
{
Control.CheckForIllegalCrossThreadCalls = false;
pm=new PluginManager("plugins",false,new EventHandler(this.Menu_Click),this);
try
{
foreach (ToolStripMenuItem t in pm.Menu.Items)
{
t.MouseMove += new MouseEventHandler(Menu_MouseMove);
t.MouseLeave += new EventHandler(Menu_MouseLeave);
}
}
catch (Exception)
{
MessageBox.Show("没有可用的插件。");
}
this.lvFiles.ContextMenuStrip = pm.Menu;
foreach (BasePluginInfo bpi in pm.PluginInfos)
{
ListViewItem l = lvPlugins.Items.Add(bpi.Name);
l.SubItems.Add(bpi.Version.ToString());
l.SubItems.Add(bpi.Description);
l.SubItems.Add(bpi.Guid.ToString().ToUpper());
l.SubItems.Add(bpi.Author);
}
im=new IconListManager(imSmall, imLarge);
exTree.SelectedPath=Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\\";
Refresh();
}
void Menu_MouseLeave(object sender, EventArgs e)
{
tslStatus.Text = "就绪";
}
void Menu_MouseMove(object sender, MouseEventArgs e)
{
ToolStripMenuItem t = sender as ToolStripMenuItem;
if (t != null)
{
foreach (BasePluginInfo bpi in pm.PluginInfos)
{
if (t.Name == bpi.Guid.ToString())
tslStatus.Text = bpi.Description;
}
}
}
new private void Refresh()
{
string[] fs = Directory.GetFiles(exTree.SelectedPath);
string[] ds = Directory.GetDirectories(exTree.SelectedPath);
lvFiles.Items.Clear();
im.ClearLists();
imLarge.Images.Add(IconReader.GetFolderIcon(IconReader.IconSize.Large, IconReader.FolderType.Open).ToBitmap());
imSmall.Images.Add(IconReader.GetFolderIcon(IconReader.IconSize.Small, IconReader.FolderType.Open).ToBitmap());
foreach (string s in ds)
{
DirectoryInfo f = new DirectoryInfo(s);
lvFiles.Items.Add(f.Name, 0);
}
foreach (string s in fs)
{
FileInfo f = new FileInfo(s);
if (f!=null)
{
imLarge.Images.Add(f.Name,IconReader.GetFileIcon(f.FullName,IconReader.IconSize.Large,false));
imSmall.Images.Add(f.Name,IconReader.GetFileIcon(f.FullName,IconReader.IconSize.Small,false));
lvFiles.Items.Add(f.Name,f.Name);
}
}
}
private void exTree_PathChanged(object sender, EventArgs e)
{
fsWatcher.Path = exTree.SelectedPath;
Refresh();
}
private void button3_Click(object sender, EventArgs e)
{
pm.Dispose();
Application.Exit();
}
private void button2_Click(object sender, EventArgs e)
{
if (lvFiles.View == View.LargeIcon)
lvFiles.View = View.List;
else lvFiles.View = View.LargeIcon;
}
private void tsbStop_Click(object sender, EventArgs e)
{
pm.StopTask();
tslStatus.Text = "就绪";
toolStripProgressBar1.Value = 0;
toolStripProgressBar1.Maximum = 0;
tsbStop.Visible = false;
}
private void button1_Click(object sender, EventArgs e)
{
if (lvPlugins.Visible)
{
button1.Text = "转到插件浏览视图";
lvPlugins.Visible = false;
lvFiles.Visible = true;
}
else
{
button1.Text = "转到文件列表视图";
lvPlugins.Visible = true;
lvFiles.Visible = false;
}
}
private void button4_Click(object sender, EventArgs e)
{
AboutBox1 a =new AboutBox1();
a.Show();
this.Enabled = false;
a.FormClosing += new FormClosingEventHandler(a_FormClosing);
}
void a_FormClosing(object sender, FormClosingEventArgs e)
{
this.Enabled = true;
}
private void fsWatcher_Created(object sender, FileSystemEventArgs e)
{
Refresh();
}
private void fsWatcher_Deleted(object sender, FileSystemEventArgs e)
{
Refresh();
}
private void fsWatcher_Renamed(object sender, RenamedEventArgs e)
{
Refresh();
}
private void lvFiles_MouseClick(object sender, MouseEventArgs e)
{
al.Clear();
foreach (int i in lvFiles.SelectedIndices)
{
al.Add(exTree.SelectedPath + "\\" + lvFiles.Items[i].Text);
}
}
private void lvFiles_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
if (e.Label != null)
{
if (File.Exists(exTree.SelectedPath + "\\" + RenameCache))
{
try
{
File.Move(exTree.SelectedPath + "\\" + RenameCache, exTree.SelectedPath + "\\" + e.Label);
}
catch (Exception err)
{
MessageBox.Show(err.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
}
else
{
try
{
Directory.Move(exTree.SelectedPath + "\\" + RenameCache, exTree.SelectedPath + "\\" + e.Label);
}
catch (Exception err)
{
MessageBox.Show(err.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
}
}
}
private void lvFiles_BeforeLabelEdit(object sender, LabelEditEventArgs e)
{
RenameCache =lvFiles.Items[e.Item].Text;
}
private void lvFiles_MouseDoubleClick(object sender, MouseEventArgs e)
{
ListViewItem l = lvFiles.SelectedItems[0];
if ((l!=null)&&(e.Button==MouseButtons.Left))
{
try
{
if (File.Exists(exTree.SelectedPath + "\\" + l.Text))
Process.Start(exTree.SelectedPath + "\\" + l.Text);
else
{
if ((l.Tag == null)||((bool)l.Tag != false))
{
exTree.SelectedPath = exTree.SelectedPath+"\\"+l.Text;
Refresh();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "无法打开" + l.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -