📄 frmmain.cs
字号:
this.mnuAddBrotherPicLibNode.Click += new System.EventHandler(this.mnuAddBrotherPicLibNode_Click);
//
// mnuAddFirstLevel
//
this.mnuAddFirstLevel.Index = 8;
this.mnuAddFirstLevel.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.mnuAddFirstLevelDetail,
this.mnuAddFirstLevelFile,
this.mnuAddFirstLevelFolder,
this.mnuAddFirstLevelText,
this.mnuAddFirstLevelPicLib});
this.mnuAddFirstLevel.Text = "增加一级节点";
//
// mnuAddFirstLevelDetail
//
this.mnuAddFirstLevelDetail.Index = 0;
this.mnuAddFirstLevelDetail.Text = "详细信息型";
this.mnuAddFirstLevelDetail.Click += new System.EventHandler(this.mnuAddFirstLevelDetail_Click);
//
// mnuAddFirstLevelFile
//
this.mnuAddFirstLevelFile.Index = 1;
this.mnuAddFirstLevelFile.Text = "文件型";
this.mnuAddFirstLevelFile.Click += new System.EventHandler(this.mnuAddFirstLevelFile_Click);
//
// mnuAddFirstLevelFolder
//
this.mnuAddFirstLevelFolder.Index = 2;
this.mnuAddFirstLevelFolder.Text = "文件夹型";
this.mnuAddFirstLevelFolder.Click += new System.EventHandler(this.mnuAddFirstLevelFolder_Click);
//
// mnuAddFirstLevelText
//
this.mnuAddFirstLevelText.Index = 3;
this.mnuAddFirstLevelText.Text = "纯文本型";
this.mnuAddFirstLevelText.Click += new System.EventHandler(this.mnuAddFirstLevelText_Click);
//
// mnuAddFirstLevelPicLib
//
this.mnuAddFirstLevelPicLib.Index = 4;
this.mnuAddFirstLevelPicLib.Text = "图片型";
this.mnuAddFirstLevelPicLib.Click += new System.EventHandler(this.mnuAddFirstLevelPicLib_Click);
//
// mnuDeleteNode
//
this.mnuDeleteNode.Index = 9;
this.mnuDeleteNode.Text = "删除节点";
this.mnuDeleteNode.Click += new System.EventHandler(this.mnuDeleteNode_Click);
//
// mnuRenameNode
//
this.mnuRenameNode.Index = 10;
this.mnuRenameNode.Text = "节点改名";
this.mnuRenameNode.Click += new System.EventHandler(this.mnuRenameNode_Click);
//
// menuItem6
//
this.menuItem6.Index = 11;
this.menuItem6.Text = "-";
//
// mnuNodeMoveUp
//
this.mnuNodeMoveUp.Index = 12;
this.mnuNodeMoveUp.Text = "节点上移";
this.mnuNodeMoveUp.Click += new System.EventHandler(this.mnuNodeMoveUp_Click);
//
// mnuNodeMoveDown
//
this.mnuNodeMoveDown.Index = 13;
this.mnuNodeMoveDown.Text = "节点下移";
this.mnuNodeMoveDown.Click += new System.EventHandler(this.mnuNodeMoveDown_Click);
//
// mnuNodeMoveLeft
//
this.mnuNodeMoveLeft.Index = 14;
this.mnuNodeMoveLeft.Text = "节点升级";
this.mnuNodeMoveLeft.Click += new System.EventHandler(this.mnuNodeMoveLeft_Click);
//
// mnuNodeMoveRight
//
this.mnuNodeMoveRight.Index = 15;
this.mnuNodeMoveRight.Text = "节点降级";
this.mnuNodeMoveRight.Click += new System.EventHandler(this.mnuNodeMoveRight_Click);
//
// ImageListTreeNode
//
this.ImageListTreeNode.ImageSize = new System.Drawing.Size(16, 16);
this.ImageListTreeNode.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ImageListTreeNode.ImageStream")));
this.ImageListTreeNode.TransparentColor = System.Drawing.Color.Transparent;
//
// openFileDialog1
//
this.openFileDialog1.DefaultExt = "*.xml";
this.openFileDialog1.Filter = "XML文件|*.xml|所有文件|*.*";
this.openFileDialog1.RestoreDirectory = true;
this.openFileDialog1.Title = "打开文件";
//
// saveFileDialog1
//
this.saveFileDialog1.DefaultExt = "xml";
this.saveFileDialog1.Filter = "XML文件|*.xml|所有文件|*.*";
this.saveFileDialog1.RestoreDirectory = true;
this.saveFileDialog1.Title = "保存文件";
//
// frmMain
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(576, 281);
this.Controls.Add(this.panel2);
this.Controls.Add(this.splitter1);
this.Controls.Add(this.panel1);
this.Controls.Add(this.panel3);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Menu = this.mainMenu1;
this.Name = "frmMain";
this.Text = "个人信息管理器";
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.Closing += new System.ComponentModel.CancelEventHandler(this.frmMain_Closing);
this.panel1.ResumeLayout(false);
this.panel3.ResumeLayout(false);
this.panel2.ResumeLayout(false);
this.panel4.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
#region 常量区
//树文件名
const string MainTreeFile = "MainTree.xml";
//连接字符串
const string ConnectStr = "InfoCenter.mdb";
//二进制配置文件名
const string ConfigFileName = "PersonalInfo.cfg";
/// <summary>
/// 用于定义节点操作类型
/// </summary>
public enum AddNodeType
{
AddFirstLevel, AddBrother, AddChild
}
/// <summary>
/// 树节点操作状态
/// </summary>
private enum TreeOperationStatus
{
None, AddNode, DeleteNode, MoveNode, RenameNode
}
#endregion
#region 变量区
//系统参数对象
private ConfigArgus sysArgu;
//数据窗体
private frmDetailText DetailForm;
private frmOnlyFile OnlyFileForm;
private frmFolder FolderForm;
private frmPicLib PicLibForm;
//查找窗体
private frmFindNode FindDataForm;
//数据库访问对象
private OLEDBAccessObj dbObj;
//实体类数据库访问对象
private DetailTextAccessObj DetailReader;
private OnlyFileAccessObj OnlyFileReader;
private FolderAccessObj FolderReader;
private PicLibAccessObj PicLibReader;
//当前状态
private TreeOperationStatus curOperationStatus = TreeOperationStatus.None;
//用于实现前进与后退的功能
private OperationRecorder BackForwardObj;
//是否允许加入到历史列表中
private bool CanAddToHistory = false;
//是否处于移动状态
private bool IsInNodeMove = false;
//是否处于节点剪切状态
private bool IsInNodeCut = false;
#endregion
#region 初始化区
private void Init()
{
//装入系统配置对象
string fileName = Application.StartupPath + "\\" + ConfigFileName;
if(File.Exists(fileName))
{
//从配置文件中装入上次配置信息
this.sysArgu = DeepSerializer.BinaryDeserialize(fileName) as ConfigArgus;
}
else
{
//没找到配置文件,则创建一个默认的对象
this.sysArgu = new ConfigArgus();
}
//装入树
string mainTree = Application.StartupPath + "\\" + MainTreeFile;
this.superTreeView1.LoadFromXMLFile(mainTree, null);
if(this.superTreeView1.GetNodeCount(false) > 0)
this.superTreeView1.Nodes[0].Expand();
//创建数据库访问对象
try
{
//连接数据库
this.dbObj = new OLEDBAccessObj();
this.dbObj.ConnectionStr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", Application.StartupPath + "\\" + ConnectStr);
this.dbObj.ConnectDB();
this.DetailReader = new DetailTextAccessObj(this.dbObj);
this.OnlyFileReader = new OnlyFileAccessObj(this.dbObj);
this.FolderReader = new FolderAccessObj(this.dbObj);
this.PicLibReader = new PicLibAccessObj(this.dbObj);
if(this.sysArgu.Debug)
{
MyTrace.WriteLine("-------------------------------------------", false);
MyTrace.WriteLine("打开PersonalInfo时间:" + DateTime.Now.ToString(), false);
}
if(this.sysArgu.LastVisitedNodePath != "")
{
this.superTreeView1.SelectedNode = this.superTreeView1.FindNode(this.sysArgu.LastVisitedNodePath);
}
this.superTreeView1.AutoExpandSubTree = this.sysArgu.AutoExpandSubTree;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message, "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}
//创建四个窗体,并向其传送数据存取对象
this.DetailForm = new frmDetailText(this.DetailReader);
this.OnlyFileForm = new frmOnlyFile(this.OnlyFileReader);
this.FolderForm = new frmFolder(this.FolderReader);
this.PicLibForm = new frmPicLib(this.PicLibReader);
this.FindDataForm = new frmFindNode(this.dbObj, this.superTreeView1);
//将四个面板移到主窗体中,先隐藏
this.DetailForm.pnlDetailText.Parent = this.pnlWorkPlace;
this.OnlyFileForm.pnlOnlyFile.Parent = this.pnlWorkPlace;
this.FolderForm.pnlFolder.Parent = this.pnlWorkPlace;
this.PicLibForm.pnlPicLib.Parent = this.pnlWorkPlace;
this.HideAllPanel();
//创建完成前进和返回的控制对象
this.BackForwardObj = new OperationRecorder();
}
#endregion
#region 退出处理
private void OnExit()
{
//正处于编辑状态则不允许退出
if(this.superTreeView1.SelectedNode != null && this.superTreeView1.SelectedNode.IsEditing)
return;
if(this.IsInNodeCut)
{
MessageBox.Show("有未粘贴的节点,不能退出!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if(MessageBox.Show("是否退出本系统?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
//让其它控件先失去焦点
this.superTreeView1.Focus();
//退出时自动保存信息
this.SaveDataToDB();
if(this.sysArgu.Debug)
{
MyTrace.WriteLine("", false);
MyTrace.WriteLine("程序退出时间:" + DateTime.Now.ToString(), false);
MyTrace.WriteLine("-------------------------------------------", false);
MyTrace.WriteLine("", false);
}
//退出时记录下上次访问的节点,以便再次打开时自动定位
if(this.superTreeView1.SelectedNode != null)
{
this.sysArgu.LastVisitedNodePath = ((SuperTreeViewNode)this.superTreeView1.SelectedNode).FullPath;
}
else
{
this.sysArgu.LastVisitedNodePath = "";
}
//利用串行化技术将参数对象保存到配置文件中
DeepSerializer.BinarySerialize(this.sysArgu, Application.StartupPath + "\\" + ConfigFileName);
//是否自动备份数据
if(this.sysArgu.AutoBackUp)
{
this.BackupSystem(true);
}
Application.Exit();
}
}
#endregion
#region 系统功能代码区
#region 面板显示与隐藏
/// <summary>
/// 隐藏所有面板
/// </summary>
private void HideAllPanel()
{
this.DetailForm.pnlDetailText.Visible = false;
this.OnlyFileForm.pnlOnlyFile.Visible = false;
this.FolderForm.pnlFolder.Visible = false;
this.PicLibForm.pnlPicLib.Visible = false;
}
/// <summary>
/// 显示DetailText面板
/// </summary>
private void ShowDetailTextPanel()
{
if(this.DetailForm.pnlDetailText.Visible == false)
{
this.DetailForm.pnlDetailText.Visible = true;
this.OnlyFileForm.pnlOnlyFile.Visible = false;
this.FolderForm.pnlFolder.Visible = false;
this.PicLibForm.pnlPicLib.Visible = false;
}
}
/// <summary>
/// 显示OnlyFile面板
/// </summary>
private void ShowOnlyFilePanel()
{
if(this.OnlyFileForm.pnlOnlyFile.Visible == false)
{
this.DetailForm.pnlDetailText.Visible = false;
this.OnlyFileForm.pnlOnlyFile.Visible = true;
this.FolderForm.pnlFolder.Visible = false;
this.PicLibForm.pnlPicLib.Visible = false;
}
}
/// <summary>
/// 显示Folder面板
/// </summary>
private void ShowFolderPanel()
{
if(this.FolderForm.pnlFolder.Visible == false)
{
this.DetailForm.pnlDetailText.Visible = false;
this.OnlyFileForm.pnlOnlyFile.Visible = false;
this.FolderForm.pnlFolder.Visible = true;
this.PicLibForm.pnlPicLib.Visible = false;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -