C# - 实现小说阅读器
发布时间:2018-06-30 14:21:31
发布时间:2018-06-30 14:21:31
1、首先是新建一个节点,将当前文件夹名称添加到该节点。写在窗体加载的方法中:
TreeNodes tn=TreeView1.Nodes.Add("神探福尔摩斯全集");
2、获得当前文件夹的绝对路径
string path=Path.GetFullPath("神探福尔摩斯全集");
GetNodes(path,tn);//因为要循环查找文件所以可以考虑采用递归来获得所有文件名和文件夹名
3、实现获得节点的方法。
通过Directory的GetDirectories方法和Path的GetFileName方法获得路径下文件夹名称,并逐一遍历子文件夹通过Directory的GetFiles方法来获得文件的名称并附加到节点上
private void GetNodes(string path,TreeNodes tn)
{
string[] dirs=Directory.Getdirectories(path);
foreach(string item in dirs)
{
TreeNodes tn1=tn.Nodes.Add(Path.GetFileName(item));
GetNodes(item,tn1); //遍历此文件夹下的文件以及文件夹
}
string[] files=Directiry.GetFiles(path);
foreach(string filepath in files)
{
TreeNodes tn2=tn.Nodes.Add(Path.GetFileName(filepath));
tn2.Tag=filespath; //将文件路径添加在节点的Tag属性中,便与之后的读取
}
}
4、实现在树形控件中一点击文章节点后右边文本框中显示文章内容,节点有一个选中事件,双击后添加
private void TreeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
TreeNodes tn=e.TreeNodes;
if(tn.Tag!=null)
{
string path=tn.Tag;
TextBox1.Text=File.ReadAllText(path,Encoding.Default);//因为是中文所以还要加上编码格式
}
}
这样的话基本就算完成了
总共使用了两个控件,TreeView和TextBox。同时也可以通过设定两个控件的Anchor和Locked属性来使得控件可以随窗体的增大而适应窗体大小。最后不要忘记设定文本框的只读性,保护数据。