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

还是先来效果图吧,再做详解:
C#界面设计之利用TreeView来制作新闻列表_第1张图片
整个环节中,最重要的是创建来个类Channel与Article,首先创建类视图如下:
C#界面设计之利用TreeView来制作新闻列表_第2张图片

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace RssNewsReader
{   
    /// 
    /// 频道类
    /// 
    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 channels;
        private void Frm_main_Load(object sender, EventArgs e)
        {
            channels = new List();
            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格式。
C#界面设计之利用TreeView来制作新闻列表_第3张图片

你可能感兴趣的:(C#学习笔记)