C#生成CHM文件(应用篇)之代码库编辑器(3)【附源代码下载】
来源:Alexis的51博客 责任编辑:栏目编辑 发表时间:2013-07-01 20:40 点击:次
在这篇文章中,我将介绍AlexisEditor项目下主要Form的实现,即MainForm、EditForm。
MainForm
MainForm包含的主要变量如下
以frm开头的都是对应的窗体变量,chmDocument表示当前的电子书,dockPanel是MainForm上的Panel,负责实现Visual Studio风格的面板。
下图是MainForm的主要方法。
在一开始是实例化Form窗体的时候会调自身的构造器,在构造器中我们其他的窗体,主要代码如下
- frmIndex.Show(dockPanel);//显示目录窗体
- frmIndex.DockTo(dockPanel, DockStyle.Left);
- frmList.Show(dockPanel);//显示搜索窗体
- frmList.DockTo(dockPanel, DockStyle.Fill);
- this.frmIndex.TreeIndex.NodeMouseDoubleClick += new TreeNodeMouseClickEventHandler(TreeIndex_NodeMouseDoubleClick);//注册编辑文章事件
加载界面的时候会触发MainForm_Load事件,我们在这个方法里面加载电子书的目录,代码如下:
- chmDocument.Load("index.xml");//加载目录
- RefreshView(chmDocument, frmIndex.TreeIndex);
RefreshView是同步TreeView和CHMDocument的方法,很重要
- private void RefreshView(CHMDocument doc, System.Windows.Forms.TreeView tvw)
- {
- tvw.BeginUpdate();
- tvw.Nodes.Clear();
- System.Windows.Forms.TreeNode node = tvw.Nodes.Add(doc.Title);
- node.Tag = doc;
- node.ImageIndex = 0;
- node.SelectedImageIndex = 0;
- AddNodes(doc.Nodes, node);
- tvw.EndUpdate();
- tvw.SelectedNode = node;
- node.Expand();
- }
RefreshView会调用AddNodes方法添加节点,方法明细如下
- private void AddNodes(CHMNodeList list, System.Windows.Forms.TreeNode RootNode)
- {
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>