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

📄 frmmain.cs

📁 个人信息的源代码
💻 CS
📖 第 1 页 / 共 5 页
字号:
			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 + -