C#界面设计之利用TreeView来制作新闻列表

来源:互联网 发布:html在线问卷答题源码 编辑:程序博客网 时间:2024/06/04 18:38

还是先来效果图吧,再做详解:
这里写图片描述
整个环节中,最重要的是创建来个类Channel与Article,首先创建类视图如下:
这里写图片描述

创建往后,添加各自属性,左边解决方案便会自动生成两个类,其代码如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace RssNewsReader{       /// <summary>    /// 频道类    /// </summary>    public class Channel    {        public Channel()        {           arts = new Dictionary<string,Article>();        }        public string Link  {   get ;  set ;   }        public string Title  {   get ;  set ;   }        public Dictionary<string, Article> arts;    }}
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace RssNewsReader{    public class Article    {           public string Link    {   get   ;  set  ;  }        public string Title   {   get   ;  set  ;  }    }}

设置好后,可以添加主窗体Frm_main, 添加TreeView控件,主要代码如下:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;namespace RssNewsReader{    public partial class Frm_main : Form    {        public Frm_main()        {            InitializeComponent();        }        List<Channel> channels;        private void Frm_main_Load(object sender, EventArgs e)        {            channels = new List<Channel>();            StreamReader sr = new StreamReader("channel.txt");            int num = int.Parse(sr.ReadLine());            for (int i = 0; i < num; i++)            {                   //从配置文件中读取频道信息                Channel ch = new Channel();                ch.Title = sr.ReadLine();                ch.Link = sr.ReadLine();                channels.Add(ch);            }            sr.Close();            //绑定数            foreach (var item in channels)            {                TreeNode node = new TreeNode(item.Title);                node.Tag = item.Link;//将连接信息暂存在节点中                tv_channel.Nodes.Add(node);            }        }        private void tv_channel_MouseDoubleClick(object sender, MouseEventArgs e)        {            if (tv_channel.SelectedNode != null && tv_channel.SelectedNode.Level == 0)            {                string link = tv_channel.SelectedNode.Tag.ToString();                MessageBox.Show(link);                      }        }    }}

运行之后,双击可以实现弹出链接URL。
其中的channel.txt文件如下,其文件编码类型必须设置为UTF-8格式。
这里写图片描述

0 0
原创粉丝点击