威尼斯人线上娱乐

网络电视精灵

7 4月 , 2019  

TVSmart

互连网电视Smart,c#互连网电视机精灵

电视机Smart

效益展现

该品种主要练习xml文件分析和面向对象思维;

壹.广播台金华昆目音讯都要从xml文件中剖析,并绑定;

2.贯彻点击TV频道节点显示该频道的电视机节目消息;

三.当年华到达用户设置的剧目提醒时间后弹出窗口提醒用户节目即将上马;

职能演示

一.点击频道显示该频道的剧目消息

威尼斯人线上娱乐 1

 2.选中全部广播台下的节点,右键突显右键菜单‘添加到笔者的电台’;

威尼斯人线上娱乐 2

 三.选中自身的电视台下的节点,右键展现右键菜单‘删除’;

 威尼斯人线上娱乐 3

 ④:右键TV节目新闻突显设置提示

威尼斯人线上娱乐 4

5.点击提示管理呈现提示窗体,右键提示新闻展现删除

威尼斯人线上娱乐 5

xml文件

一.频段音信

<?xml version="1.0" encoding="utf-8" ?>
<TVChannels>
    <Channel>
        <channelType>TypeA</channelType> <!--频道类型-->
        <tvChannel>北京电视台</tvChannel> <!--频道名称-->
        <path>files/北京电视台.xml</path>           <!--频道对应XML文件的本地路径-->
    </Channel>
    <Channel>
        <channelType>TypeB</channelType>
        <tvChannel>凤凰卫视</tvChannel>
        <path>files/凤凰卫视.xml</path>
    </Channel>
</TVChannels>

二.新加坡电台

<?xml version="1.0" encoding="utf-8" ?>
<typeA version =" 1.0">
    <channelName>北京电视台</channelName>
    <tvProgramTable>
        <tvProgram>
            <playTime>2016-9-5 16:21</playTime> <!--节目播出时间-->
            <meridien>早间档</meridien> <!--时段-->

            <programName>重播:国际双行线</programName> <!--节目名称-->
            <path>c:\a.wma</path>         <!--视频路径-->
        </tvProgram>
<tvProgram>
            <playTime>2016-9-5 16:22</playTime> <!--节目播出时间-->
            <meridien>早间档</meridien> <!--时段-->

            <programName>北京您早</programName> <!--节目名称-->
            <path>C:\New Stories (Highway Blues).wma</path>         <!--视频路径-->
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 09:02</playTime> <!--节目播出时间-->
            <meridien>早间档</meridien> <!--时段-->

            <programName>重播《红星剧场》32集剧:勇者无敌(31)</programName> <!--节目名称-->
            <path>**</path>         <!--视频路径-->
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 09:58</playTime>

            <meridien>早间档</meridien>
            <programName>重播《红星剧场》32集剧:勇者无敌(32)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 11:15</playTime>

            <meridien>午间档</meridien>
            <programName>重播:专题片:我爱你,中国(14)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 11:58</playTime>

            <meridien>午间档</meridien>
            <programName>身边</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 12:30</playTime>

            <meridien>午间档</meridien>
            <programName>特别关注</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 13:05</playTime>

            <meridien>午间激情档</meridien>
            <programName>网络电视精灵</programName>
            <path>H:\video\01网络电视精灵.avi</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 13:40</playTime>

            <meridien>午间档</meridien>
            <programName>《玫瑰剧场》55集剧:闯关东中篇(21)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 14:32</playTime>

            <meridien>午间档</meridien>
            <programName>《玫瑰剧场》55集剧:闯关东中篇(22)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 15:27</playTime>

            <meridien>下午档</meridien>
            <programName>《玫瑰剧场》55集剧:闯关东中篇(23)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 16:19</playTime>

            <meridien>下午档</meridien>
            <programName>《玫瑰剧场》55集剧:闯关东中篇(24)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 17:31</playTime>

            <meridien>下午档</meridien>
            <programName>法治进行时</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 18:00</playTime>

            <meridien>晚间档</meridien>
            <programName>新闻晚高峰</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 18:30</playTime>

            <meridien>晚间档</meridien>
            <programName>北京新闻</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 18:56</playTime>

            <meridien>晚间档</meridien>
            <programName>天气预报</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 19:00</playTime>

            <meridien>晚间档</meridien>
            <programName>转播CCTV新闻联播</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 19:31</playTime>

            <meridien>晚间档</meridien>
            <programName>看气象</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 19:40</playTime>

            <meridien>晚间档</meridien>
            <programName>专题片:我爱你,中国(15)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 20:22</playTime>

            <meridien>晚间档</meridien>
            <programName>《爸妈都是老党员》首播庆典</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 21:21</playTime>

            <meridien>晚间档</meridien>
            <programName>《红星剧场》38集剧:咱爸咱妈六十年(1)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 23:25</playTime>

            <meridien>晚间档</meridien>
            <programName>重播文艺:花样年华歌舞大赛(5)</programName>
            <path>**</path>
        </tvProgram>
    </tvProgramTable>
</typeA>

叁.凤凰香港卫星电视机有限公司

<?xml version="1.0" encoding="utf-8" ?>
<typeB version =" 1.0">
    <ProgramList>
        <Program>
            <playTime>2009-9-29 01:30</playTime>  <!--播出时间-->

            <name>简单工厂模式</name>          <!--节目名称-->
            <path>D:\简单工厂模式.wmv</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 02:10</playTime>  <!--播出时间-->

            <name>非凡人物论成功(713)</name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 02:15</playTime>  <!--播出时间-->

            <name>有报天天读(28/09/09) </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 02:40</playTime>  <!--播出时间-->

            <name>娱乐大风暴(682) </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 03:15</playTime>  <!--播出时间-->

            <name>上海新长宁集团特约之2009中华小姐环球大赛-美丽前奏(41) </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 03:20</playTime>  <!--播出时间-->

            <name>完全时尚手册:天桥云裳(632)  </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 03:40</playTime>  <!--播出时间-->

            <name>东风康明斯凤凰冲击播:天力士特约之今日看世界(39)  </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 04:25</playTime>  <!--播出时间-->

            <name>音乐中国风(442)  </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 04:35</playTime>  <!--播出时间-->

            <name>维维健康新概念(193) </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 04:40</playTime>  <!--播出时间-->

            <name>红牛凤凰全球连线(28/09/09) </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 05:05</playTime>  <!--播出时间-->

            <name>红云红河时事开讲(28/09/09)  </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 05:30</playTime>  <!--播出时间-->

            <name>别巡检调查队(34)(R) </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
    </ProgramList>
</typeB>

网络电视精灵。代码:

1.频道类

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

namespace 网络电视精灵
{
    public abstract class ChannelBase
    {
        /// <summary>
        /// 频道类
        /// </summary>
        /// 
        //频道名称
        public string Name { get; set; }
        //频道节目集合
        public List<TV> List { get; set; }
        //频道xml地址
        public string Path { get; set; }
        //频道类型
        public string Type { get; set; }
        public ChannelBase(string name,string path,string type)
        {
            this.Name = name;
            this.Path = path;
            this.Type = type;
            this.List = new List<TV>();
        }
        public ChannelBase()
       {
       }
        public abstract void Fetch();

    }
}

2.TV类

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

namespace 网络电视精灵
{
    public class TV
    {
        /// <summary>
        /// 电视节目类
        /// </summary>
        /// 

        //节目开始时间
      public DateTime PlayTime { get; set; }
        //节目名称
      public string ProgramName { get; set; }
        //节目地址
      public string FilePath { get; set; }
       public TV()
       {
       }
       public TV( DateTime playtime,string name,string filepath)
       {
           this.PlayTime = playtime;
           this.ProgramName = name;
           this.FilePath = filepath;
       }
    }
}

3.工厂类

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

namespace 网络电视精灵
{
    class Factory
    {
        /// <summary>
        /// 工厂类
        /// </summary>
        /// <param name="type"></param>
        /// <param name="name"></param>
        /// <param name="path"></param>
        /// <returns></returns>
        //简单工厂方法生成频道对象
        public static ChannelBase create(string type, string name, string path)
        {
            ChannelBase cb = null;
            switch (type)
            {
                case "TypeA":
                    cb = new BJ(name, path,type);
                    break;
                case "TypeB":
                    cb = new FH(name, path,type);
                    break;
            }
            return cb;
        }
    }
}

4.管理类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace 网络电视精灵
{
    class Management
    {
        //提醒类的静态集合,用于保存添加的提醒
        public static List<Remind> Rlist = new List<Remind>();
        //管理类方法,处理xml文件,返回处理后的频道对象的集合
        public static List<ChannelBase> load()
        {

            List<ChannelBase> List = new List<ChannelBase>();
            XmlDocument dic = new XmlDocument();
            dic.Load("files\\FullChannels.xml");
            XmlNode root = dic.DocumentElement;
            foreach (XmlNode item in root)
            {
                ChannelBase cb=Factory.create(item["channelType"].InnerText,item["tvChannel"].InnerText,item["path"].InnerText);
                cb.Fetch();
                List.Add(cb);
            }
            return List;
        }
        //向提醒类集合添加对象的方法
        public static bool  remind(DateTime playtime,  string ProgramName,DateTime reminddatetime)
        {
            bool flag =true;
            foreach (Remind item in Rlist)
            {
                if (item.ProgramName == ProgramName && item.Reminddatetime == reminddatetime)
                {
                    flag = false;
                }
            }
            if (flag)
            {
                Remind r = new Remind(playtime, ProgramName, reminddatetime);
                Management.Rlist.Add(r);
            }
            return flag;
        }
    }
}

伍.法国巴黎广播台类

sing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace 网络电视精灵
{
    class BJ:ChannelBase
    {
        /// <summary>
        /// 北京电视台类
        /// </summary>
         public BJ()
        {
        }
         public BJ(string name, string path,string type)
            : base(name,path,type)
        {

        }
        //解析北京电视台xml文件方法
        public override void Fetch()
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(Path);
            XmlNode no = doc.DocumentElement;
            foreach (XmlNode item in no)
            {
                if (item.Name == "tvProgramTable")
                {
                    foreach (XmlNode it in item)
                    {
                        TV tv = new TV(Convert.ToDateTime(it["playTime"].InnerText), it["programName"].InnerText, it["path"].InnerText);
                        this.List.Add(tv);
                    }
                }
            }
        }
    }
}

6.凤凰香港卫星TV有限公司类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace 网络电视精灵
{
    class FH:ChannelBase
    {
        /// <summary>
        /// 凤凰卫视类
        /// </summary>
        public FH()
        {
        }
        public FH(string name,string path,string type)
            : base(name,path,type)
        {

        }
        //解析凤凰卫视xml文件的方法
        public override void Fetch()
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(Path);
            XmlNode no = doc.DocumentElement;
            foreach (XmlNode item in no.ChildNodes)
            {
                foreach (XmlNode it in item)
                {
                    TV tv = new TV(Convert.ToDateTime(it["playTime"].InnerText),it["name"].InnerText,it["path"].InnerText);
                    this.List.Add(tv);
                }
            }
        }
    }
}

7.提醒类

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

namespace 网络电视精灵
{
    class Remind:TV
    {
        /// <summary>
        /// 提醒类
        /// </summary>
        /// 
        //提醒时间
        public DateTime Reminddatetime { get; set; }
        public Remind()
        {

        }
        public Remind(DateTime playtime, string ProgramName, DateTime reminddatetime)
        {
            this.PlayTime = playtime;
            this.ProgramName = ProgramName;
            this.Reminddatetime = reminddatetime;
        }
    }
}

八.主窗体代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 网络电视精灵
{

    public partial class TvShow : Form
    {
        TreeNode root = null;
        public static Remindmg rmg;
        public TvShow()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //创建根节点
            dataGridView1.AutoGenerateColumns = false;
            root = new TreeNode("我的电视台");
            tree.Nodes.Add(root);
            info();
        }
        //创建所有电视台的方法
        private void info()
        {

            TreeNode tn = new TreeNode("所有电视台");
            tree.Nodes.Add(tn);
            List<ChannelBase> list = Management.load();
            foreach (ChannelBase item in list)
            {
                item.Fetch();
                TreeNode tn1 = new TreeNode(item.Name);
                tn1.Tag = item;
                tn.Nodes.Add(tn1);
            }
        }

        private void tree_AfterSelect(object sender, TreeViewEventArgs e)
        {
            //显示右键菜单的方法
            if (tree.SelectedNode.Tag != null)
            {
                dataGridView1.DataSource = ((ChannelBase)tree.SelectedNode.Tag).List;
            }
            foreach (TreeNode item in tree.Nodes)
            {

                foreach (TreeNode item1 in item.Nodes)
                {
                    if (item1.Parent.Text == tree.Nodes[0].Text && item1 == tree.SelectedNode)
                    {
                        tree.ContextMenuStrip = contextMenuStrip1;

                    }
                    else if (item1.Parent.Text == tree.Nodes[1].Text && item1 == tree.SelectedNode)
                    {
                        tree.ContextMenuStrip = contextMenuStrip2;
                    }
                    else if (item == tree.SelectedNode)
                    {
                        tree.ContextMenuStrip = null;
                    }

                }
            }
        }

        private void tree_NodeMouseHover(object sender, TreeNodeMouseHoverEventArgs e)
        {

        }

        private void 加入我的电视台ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //将频道加入我的我的电视台的方法
            bool flag = true;

            foreach (TreeNode item in tree.Nodes[0].Nodes)
            {

                if (item.Text == tree.SelectedNode.Text)
                {
                    flag = false;
                }



            }
            if (flag)
            {
                TreeNode tn = new TreeNode(tree.SelectedNode.Text);
                tn.Tag = tree.SelectedNode.Tag;
                root.Nodes.Add(tn);
            }
            else
            {
                MessageBox.Show("已经添加到我的电视了","提示");
            }
        }

        private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //删除我的频道的方法
            tree.SelectedNode.Remove();
        }

        private void toolStripMenuItem1_Click(object sender, EventArgs e)
        {
            //添加播放时提醒
            DateTime Remind = Convert.ToDateTime(dataGridView1.SelectedRows[0].Cells[0].Value);
            Add(Remind);
        }

        private void Add(DateTime Remind)
        {
            //添加提醒的方法
            DateTime playdatime = Convert.ToDateTime(dataGridView1.SelectedRows[0].Cells[0].Value);
            string name = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
            if (Management.remind(playdatime, name, Remind))
            {
                MessageBox.Show("添加成功", "提示");
                updateRmg();
            }
            else
            {
                MessageBox.Show("添加失败,已经添加过该提醒了", "提示");
            }
        }   
        //更新提醒列表的方法
        public void updateRmg()
        {
            if (rmg != null)
            {
                rmg.Remindmginfo();
            }
        }
        private void 提前十分钟提醒ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //提前十分钟提醒
            DateTime Remind = Convert.ToDateTime(dataGridView1.SelectedRows[0].Cells[0].Value).AddMinutes(-10);
            Add(Remind);
        }

        private void 提前三十分钟提醒ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //提前三十分钟提醒
            DateTime Remind = Convert.ToDateTime(dataGridView1.SelectedRows[0].Cells[0].Value).AddMinutes(-30);
            Add(Remind);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            //到时提醒的方法
           string time=DateTime.Now.ToString("yyyy-MM-dd hh:mm");
           Remind r = null;
            foreach (Remind item in Management.Rlist)
            {
                if ((item.Reminddatetime.ToString("yyyy-MM-dd hh:mm")).Equals(time))
                {
                    MessageBox.Show(item.ProgramName+"马上就要开始了","提示",MessageBoxButtons.OK);
                    r = item;
                }
            }
            if (r != null)
            {
                Management.Rlist.Remove(r);
                updateRmg();
            }
        }

        private void 提醒管理ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //点击提醒管理打开提醒窗体
            Remindmg from = new Remindmg();
            from.Show();
        }
    }
}

玖.提示窗体代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 网络电视精灵
{
    public partial class Remindmg : Form
    {
        public Remindmg()
        {
            InitializeComponent();
        }

        private void Remindmg_Load(object sender, EventArgs e)
        {
            //设置不显示未绑定的列
            dataGridView1.AutoGenerateColumns = false;
            //获取提醒窗体对象
            TvShow.rmg = this;

            Remindmginfo();
        }
           //绑定数据源
        public void Remindmginfo()
        {
            BindingSource bs = new BindingSource();
            bs.DataSource = Management.Rlist;
            dataGridView1.DataSource = bs;
        }
        //删除的方法
        private void 删除提醒ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count > 0)
            {
                Remind r = null;
                string name = dataGridView1.SelectedRows[0].Cells["ProgramName"].Value.ToString();
                string datetime = dataGridView1.SelectedRows[0].Cells["remindtime"].Value.ToString();
                foreach (Remind item in Management.Rlist)
                {
                    if (item.ProgramName == name && item.Reminddatetime.ToString().Equals(datetime))
                    {
                        r = item;
                    }
                }
                if (r != null
                    )
                {
                    Management.Rlist.Remove(r);
                    Remindmginfo();
                }
            }
        }
    }
}

 

TVSmart 效果展示该项目首要练习xml文件分析和面向对象思维;
一.广播台黄岩乱弹目消息都要从xml文件中解析…

TVSmart

互联网电视机Smart

效用呈现

效益体现

任务描述

  1. 解析XML文件中的数据

三个大约的xml文件;

威尼斯人线上娱乐 6威尼斯人线上娱乐 7

<?xml version="1.0" encoding="utf-8" ?><TVChannele>  <Channel>    <channelType>TypeA</channelType>    <tvChannel>北京电视台</tvChannel>    <path>files/北京电视台.xml</path>  </Channel>  <Channel>    <channelType>TypeB</channelType>    <tvChannel>凤凰卫视</tvChannel>    <path>files/凤凰卫视.xml</path>  </Channel></TVChannele>

FullChannels威尼斯人线上娱乐 8威尼斯人线上娱乐 9

<?xml version="1.0" encoding="utf-8" ?><typeA version ="1.0">  <channelName>北京电视台</channelName><!--电视台-->  <tvProgramTable>    <tvProgram>      <playTime>2013-9-29 06:02</playTime><!--节目播出时间-->      <meridien>早间档</meridien><!--时段-->      <programName>重播:国际双行线</programName><!--节目名称-->      <path>E:\</path><!--节目视频的本地路径-->    </tvProgram>    <tvProgram>      <playTime>2013-9-29 07:00</playTime>      <!--节目播出时间-->      <meridien>早间档</meridien>      <!--时段-->      <programName>北京您早</programName>      <!--节目名称-->      <path>E:\</path>      <!--节目视频的本地路径-->    </tvProgram>    <tvProgram>      <playTime>2013-9-29 09:02</playTime>      <!--节目播出时间-->      <meridien>早间档</meridien>      <!--时段-->      <programName>重播:《红星剧场》32集剧:勇者无敌</programName>      <!--节目名称-->      <path>E:\</path>      <!--节目视频的本地路径-->    </tvProgram>  </tvProgramTable></typeA>

国都电视台.xml威尼斯人线上娱乐 10威尼斯人线上娱乐 11

<?xml version="1.0" encoding="utf-8" ?><typeB version ="1.0">  <channelName>凤凰电视台</channelName>  <!--电视台-->  <tvProgramTable>    <tvProgram>      <playTime>2013-9-29 01:30</playTime>      <!--节目播出时间-->      <meridien>早间档</meridien>      <!--时段-->      <programName>重播:国际双行线</programName>      <!--节目名称-->      <path>E:\</path>      <!--节目视频的本地路径-->    </tvProgram>  </tvProgramTable></typeB>

凤凰卫视.xml

  1. 将”FullChannels.xml”文件中拥有的频道添加到窗体的TreeView控件中.

③.
在TreeView控件中精选频道,将该频道的节目列表展现在窗体的DataGrideView控件中.

该品种重要演习xml文件分析和面向对象思维;

该品种主要演习xml文件分析和面向对象思维;

品种框架的搭建

分析互连网Smart的大概结构,创制对应的类

  1. 创立对应的类

威尼斯人线上娱乐 12

威尼斯人线上娱乐 13

ChannelFactory:通过简单工厂创造频道子类

威尼斯人线上娱乐 14威尼斯人线上娱乐 15

public class ChannelFactory    {       //通过工厂创建频道子类       public static ChannelBase CreateChannel(string type)       {           ChannelBase channel = null;           switch            {               case "TypeA":                   channel=new TypeAChannel();                   break;               case "TypeB":                   channel = new TypeBChannel();                   break;               default:                   break;           }           return channel;       }    }

ChannelFactory

ChannelManager:解析”
FullChannels.xml”文件,创设存款和储蓄所有频道音信的聚集,并将频道名添加到TreeView控件中

1.电台松阳高腔目消息都要从xml文件中分析,并绑定;

1.广播台湖剧目消息都要从xml文件中剖析,并绑定;

核情感路

  1. 创建了道管理类,添加1个加载全部频道消息的章程LoadAllChannel()
    当大家挑选某1节点时实际取得到的是该节点Text值对应的频段对象.所以使用Dctionary<>来存款和储蓄全数的频道对象

威尼斯人线上娱乐 16威尼斯人线上娱乐 17

       public ChannelManager()       {           fullChannels = new Dictionary<string, ChannelBase>();       }       //定义一个容器,承载所有的频道集合(Key:频道名称  Value:频道对象)       private Dictionary<string, ChannelBase> fullChannels ;       public Dictionary<string, ChannelBase> FullChannels       {           get { return fullChannels; }           set { fullChannels = value; }       }

fullChannels

二.
接下去便是给窗体中的TreeView控件中添加多少,分析:通过foreach将字典中的集合数据拆解,每一项对应的正是1个TreeNode对象,大家必要的是向”全部广播台”节点下添加电台的称谓属性.而名称属性对应的便是1个Channel对象,大家用Tag属性存款和储蓄.

威尼斯人线上娱乐 18威尼斯人线上娱乐 19

       //01.写一个方法来解析xml,并且来给箱子中装数据       public void ParseXmlToDictionary()       {           XmlDocument doc=new XmlDocument();           doc.Load("files/Fullchannels.xml");           //获取根节点           XmlNode root=doc.DocumentElement;           foreach (XmlNode item in root.ChildNodes)           {                            //一个item代表一个Channel节点               //获取类型               string type=item["channelType"].InnerText;               ChannelBase channel= ChannelFactory.CreateChannel;               //名称               channel.ChannelName = item["tvChannel"].InnerText;               channel.Path = item["path"].InnerText;               channel.Type = type;               fullChannels.Add(channel.ChannelName,channel);           }       }

ParseXmlToDictionary威尼斯人线上娱乐 20威尼斯人线上娱乐 21

        private void FrmMain_Load(object sender, EventArgs e)        {           //将ChannelManage类当中的容器FullChannels中的数据拎到TreeView上,            //根据思路,集合中每一项的Value值都是一个频道对应,没遍历到一个            //频道对象,我们就形成TV上的一个TreeNode            //01.加载根节点的方法            LoadRootNode();            //02.将集合中的数据拆解成是“所有电台下的”多个子节点            ChannelManager manager=new ChannelManager();            manager.ParseXmlToDictionary();            Dictionary<string,ChannelBase> dic=manager.FullChannels;            foreach (var channel in dic.Values)            {                //转化过程                TreeNode tn=new TreeNode();                tn.Text = channel.ChannelName;                tn.Tag = channel;                //让tn加到所有电台下                allNode.Nodes.Add;            }        }

节点目的的绑定

3.
将方今选中的电视台的节目列表显示在dgv(DataGrideView)中显得出来,只须求将dgv的datasource属性设为当前入选广播台的节目列表list<Progeram>即可.

(大家在甄选节点时应精晓一件事,在大家点击节点已得到到该广播台的节目列表,获取音讯应该发生在我们点击节点的时候仍旧应该发生在增选之后)

威尼斯人线上娱乐 22威尼斯人线上娱乐 23

        private void tvChannel_AfterSelect(object sender, TreeViewEventArgs e)        {                      //01.获取到用户选择的节点            TreeNode selectedNode = tvChannel.SelectedNode;            if (selectedNode.Level==1&&selectedNode.Parent.Text=="所有电视台")            {                ChannelBase channel = (ChannelBase)selectedNode.Tag;                //清集合                if (channel.TvList!=null)                {                    channel.TvList.Clear();                }                channel.Fetch();                List<TvProgram> proList = channel.TvList;                dgvProgList.DataSource = proList;            }                  }

tvChannel_AfterSelect

写到那里,即使运转一下主次,会报错误

.威尼斯人线上娱乐 24

小编们精心回看一下,大家在给TreeView控件添加节点的时候,给节点的TAG属性绑定了切实的频段对象.不过TreeView在窗体突显前,第3个节点会被暗中同意选中

威尼斯人线上娱乐 25

于是我们要对其进展优化,也正是当窗体在开辟时,对私下认可选项的节点经行判断

威尼斯人线上娱乐 26威尼斯人线上娱乐 27

  if (selectedNode.Level==1&&selectedNode.Parent.Text=="所有电视台")

暗许选项节点判断

咱俩会意识当大家往往点击同1广播台,该电台的节目音讯会在dgv中开展频仍增加,所以实行以下处理

威尼斯人线上娱乐 28威尼斯人线上娱乐 29

 //清集合                if (channel.TvList!=null)                {                    channel.TvList.Clear();                }

清理节目列表

4.
节点右键菜单的增长,在TreeView控件中分化的节点对应了差异的右键菜单,当我们点击”作者的广播台”下的字节点时,右键菜单只好为除去,而当自家点击”全部电台”下的子节点时,右键菜单为抬高到”小编的电台”和”删除,要是大家采纳三个ContextMenuStrip对不一致节点经行绑定,会导致冗余,我们可不得以应用叁个ContextMenuStrip绑定到四个节点并使其出示区别的菜单呢?答案是毫无疑问的,大家须求用到ContextMenuStrip的2特性质:Visible.

威尼斯人线上娱乐 30

大家要在选拔节点后对选取到的节点经行判断,并选用呈现该节点的右键菜单项

威尼斯人线上娱乐 31威尼斯人线上娱乐 32

            if (tvAllChannel.SelectedNode.Level == 1 && tvAllChannel.SelectedNode.Parent.Text == "所有电视台")            {                ctxAddToMyChannels.Items[2].Visible = false;                ctxAddToMyChannels.Items[3].Visible = false;            }            else if (tvAllChannel.SelectedNode.Level == 1 && tvAllChannel.SelectedNode.Parent.Text == "我的电视台")            {                ctxAddToMyChannels.Items[0].Visible = false;                ctxAddToMyChannels.Items[1].Visible = false;                ctxAddToMyChannels.Items[2].Visible = false;            }            else if (tvAllChannel.SelectedNode.Text == "所有电视台")            {                ctxAddToMyChannels.Items[0].Visible = false;                ctxAddToMyChannels.Items[1].Visible = false;                ctxAddToMyChannels.Items[3].Visible = false;

节点右键菜单项

到了那里,那一个小项目方可说已经告壹段落,之后学习过IO流会继续对该类型进展优化.恐怕自身所做的并不全面,存在珍视重代码的复用和冗余,也可望看过的诸位实行提点,扶助作者获得越来越多更优的化解方案.小子在此先行谢过了~~~

二.兑现点击电视机频道节点显示该频道的TV节目消息;

二.实现点击TV频道节点显示该频道的电视节目消息;

三.当小时到达用户设置的剧目提示时间后弹出窗口提醒用户节目即将上马;

三.当光阴到达用户安装的节目提示时间后弹出窗口提醒用户节目即将起初;

意义务演出示

成效演示

一.点击频道显示该频道的剧目消息

一.点击频道突显该频道的剧目音信

威尼斯人线上娱乐 33

威尼斯人线上娱乐 34

 2.选中全体电台下的节点,右键展现右键菜单‘添加到笔者的电台’;

 2.选中全体电台下的节点,右键展现右键菜单‘添加到笔者的电台’;

威尼斯人线上娱乐 35

威尼斯人线上娱乐 36

 3.选中本人的电台下的节点,右键展现右键菜单‘删除’;

 三.选中本人的电台下的节点,右键显示右键菜单‘删除’;

 威尼斯人线上娱乐 37

 威尼斯人线上娱乐 38

 四:右键电视节目新闻呈现设置提示

 4:右键电视机节目新闻突显设置提示

威尼斯人线上娱乐 39

威尼斯人线上娱乐 40

5.点击提示管理展现提醒窗体,右键提示音讯体现删除

伍.点击提醒管理突显提示窗体,右键提示音讯突显删除

威尼斯人线上娱乐 41

威尼斯人线上娱乐 42

xml文件

xml文件

1.频段音讯

一.频段音讯

<?xml version="1.0" encoding="utf-8" ?>
<TVChannels>
    <Channel>
        <channelType>TypeA</channelType> <!--频道类型-->
        <tvChannel>北京电视台</tvChannel> <!--频道名称-->
        <path>files/北京电视台.xml</path>           <!--频道对应XML文件的本地路径-->
    </Channel>
    <Channel>
        <channelType>TypeB</channelType>
        <tvChannel>凤凰卫视</tvChannel>
        <path>files/凤凰卫视.xml</path>
    </Channel>
</TVChannels>
<?xml version="1.0" encoding="utf-8" ?>
<TVChannels>
    <Channel>
        <channelType>TypeA</channelType> <!--频道类型-->
        <tvChannel>北京电视台</tvChannel> <!--频道名称-->
        <path>files/北京电视台.xml</path>           <!--频道对应XML文件的本地路径-->
    </Channel>
    <Channel>
        <channelType>TypeB</channelType>
        <tvChannel>凤凰卫视</tvChannel>
        <path>files/凤凰卫视.xml</path>
    </Channel>
</TVChannels>

二.上视

二.上视

<?xml version="1.0" encoding="utf-8" ?>
<typeA version =" 1.0">
    <channelName>北京电视台</channelName>
    <tvProgramTable>
        <tvProgram>
            <playTime>2016-9-5 16:21</playTime> <!--节目播出时间-->
            <meridien>早间档</meridien> <!--时段-->

            <programName>重播:国际双行线</programName> <!--节目名称-->
            <path>c:\a.wma</path>         <!--视频路径-->
        </tvProgram>
<tvProgram>
            <playTime>2016-9-5 16:22</playTime> <!--节目播出时间-->
            <meridien>早间档</meridien> <!--时段-->

            <programName>北京您早</programName> <!--节目名称-->
            <path>C:\New Stories (Highway Blues).wma</path>         <!--视频路径-->
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 09:02</playTime> <!--节目播出时间-->
            <meridien>早间档</meridien> <!--时段-->

            <programName>重播《红星剧场》32集剧:勇者无敌(31)</programName> <!--节目名称-->
            <path>**</path>         <!--视频路径-->
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 09:58</playTime>

            <meridien>早间档</meridien>
            <programName>重播《红星剧场》32集剧:勇者无敌(32)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 11:15</playTime>

            <meridien>午间档</meridien>
            <programName>重播:专题片:我爱你,中国(14)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 11:58</playTime>

            <meridien>午间档</meridien>
            <programName>身边</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 12:30</playTime>

            <meridien>午间档</meridien>
            <programName>特别关注</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 13:05</playTime>

            <meridien>午间激情档</meridien>
            <programName>网络电视精灵</programName>
            <path>H:\video\01网络电视精灵.avi</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 13:40</playTime>

            <meridien>午间档</meridien>
            <programName>《玫瑰剧场》55集剧:闯关东中篇(21)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 14:32</playTime>

            <meridien>午间档</meridien>
            <programName>《玫瑰剧场》55集剧:闯关东中篇(22)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 15:27</playTime>

            <meridien>下午档</meridien>
            <programName>《玫瑰剧场》55集剧:闯关东中篇(23)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 16:19</playTime>

            <meridien>下午档</meridien>
            <programName>《玫瑰剧场》55集剧:闯关东中篇(24)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 17:31</playTime>

            <meridien>下午档</meridien>
            <programName>法治进行时</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 18:00</playTime>

            <meridien>晚间档</meridien>
            <programName>新闻晚高峰</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 18:30</playTime>

            <meridien>晚间档</meridien>
            <programName>北京新闻</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 18:56</playTime>

            <meridien>晚间档</meridien>
            <programName>天气预报</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 19:00</playTime>

            <meridien>晚间档</meridien>
            <programName>转播CCTV新闻联播</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 19:31</playTime>

            <meridien>晚间档</meridien>
            <programName>看气象</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 19:40</playTime>

            <meridien>晚间档</meridien>
            <programName>专题片:我爱你,中国(15)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 20:22</playTime>

            <meridien>晚间档</meridien>
            <programName>《爸妈都是老党员》首播庆典</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 21:21</playTime>

            <meridien>晚间档</meridien>
            <programName>《红星剧场》38集剧:咱爸咱妈六十年(1)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 23:25</playTime>

            <meridien>晚间档</meridien>
            <programName>重播文艺:花样年华歌舞大赛(5)</programName>
            <path>**</path>
        </tvProgram>
    </tvProgramTable>
</typeA>
<?xml version="1.0" encoding="utf-8" ?>
<typeA version =" 1.0">
    <channelName>北京电视台</channelName>
    <tvProgramTable>
        <tvProgram>
            <playTime>2016-9-5 16:21</playTime> <!--节目播出时间-->
            <meridien>早间档</meridien> <!--时段-->

            <programName>重播:国际双行线</programName> <!--节目名称-->
            <path>c:\a.wma</path>         <!--视频路径-->
        </tvProgram>
<tvProgram>
            <playTime>2016-9-5 16:22</playTime> <!--节目播出时间-->
            <meridien>早间档</meridien> <!--时段-->

            <programName>北京您早</programName> <!--节目名称-->
            <path>C:\New Stories (Highway Blues).wma</path>         <!--视频路径-->
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 09:02</playTime> <!--节目播出时间-->
            <meridien>早间档</meridien> <!--时段-->

            <programName>重播《红星剧场》32集剧:勇者无敌(31)</programName> <!--节目名称-->
            <path>**</path>         <!--视频路径-->
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 09:58</playTime>

            <meridien>早间档</meridien>
            <programName>重播《红星剧场》32集剧:勇者无敌(32)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 11:15</playTime>

            <meridien>午间档</meridien>
            <programName>重播:专题片:我爱你,中国(14)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 11:58</playTime>

            <meridien>午间档</meridien>
            <programName>身边</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 12:30</playTime>

            <meridien>午间档</meridien>
            <programName>特别关注</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 13:05</playTime>

            <meridien>午间激情档</meridien>
            <programName>网络电视精灵</programName>
            <path>H:\video\01网络电视精灵.avi</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 13:40</playTime>

            <meridien>午间档</meridien>
            <programName>《玫瑰剧场》55集剧:闯关东中篇(21)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 14:32</playTime>

            <meridien>午间档</meridien>
            <programName>《玫瑰剧场》55集剧:闯关东中篇(22)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 15:27</playTime>

            <meridien>下午档</meridien>
            <programName>《玫瑰剧场》55集剧:闯关东中篇(23)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 16:19</playTime>

            <meridien>下午档</meridien>
            <programName>《玫瑰剧场》55集剧:闯关东中篇(24)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 17:31</playTime>

            <meridien>下午档</meridien>
            <programName>法治进行时</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 18:00</playTime>

            <meridien>晚间档</meridien>
            <programName>新闻晚高峰</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 18:30</playTime>

            <meridien>晚间档</meridien>
            <programName>北京新闻</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 18:56</playTime>

            <meridien>晚间档</meridien>
            <programName>天气预报</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 19:00</playTime>

            <meridien>晚间档</meridien>
            <programName>转播CCTV新闻联播</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 19:31</playTime>

            <meridien>晚间档</meridien>
            <programName>看气象</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 19:40</playTime>

            <meridien>晚间档</meridien>
            <programName>专题片:我爱你,中国(15)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 20:22</playTime>

            <meridien>晚间档</meridien>
            <programName>《爸妈都是老党员》首播庆典</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 21:21</playTime>

            <meridien>晚间档</meridien>
            <programName>《红星剧场》38集剧:咱爸咱妈六十年(1)</programName>
            <path>**</path>
        </tvProgram>
        <tvProgram>
            <playTime>2009-9-29 23:25</playTime>

            <meridien>晚间档</meridien>
            <programName>重播文艺:花样年华歌舞大赛(5)</programName>
            <path>**</path>
        </tvProgram>
    </tvProgramTable>
</typeA>

叁.凤凰香港卫星TV有限公司

三.凤凰香港卫星电视有限公司

<?xml version="1.0" encoding="utf-8" ?>
<typeB version =" 1.0">
    <ProgramList>
        <Program>
            <playTime>2009-9-29 01:30</playTime>  <!--播出时间-->

            <name>简单工厂模式</name>          <!--节目名称-->
            <path>D:\简单工厂模式.wmv</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 02:10</playTime>  <!--播出时间-->

            <name>非凡人物论成功(713)</name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 02:15</playTime>  <!--播出时间-->

            <name>有报天天读(28/09/09) </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 02:40</playTime>  <!--播出时间-->

            <name>娱乐大风暴(682) </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 03:15</playTime>  <!--播出时间-->

            <name>上海新长宁集团特约之2009中华小姐环球大赛-美丽前奏(41) </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 03:20</playTime>  <!--播出时间-->

            <name>完全时尚手册:天桥云裳(632)  </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 03:40</playTime>  <!--播出时间-->

            <name>东风康明斯凤凰冲击播:天力士特约之今日看世界(39)  </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 04:25</playTime>  <!--播出时间-->

            <name>音乐中国风(442)  </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 04:35</playTime>  <!--播出时间-->

            <name>维维健康新概念(193) </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 04:40</playTime>  <!--播出时间-->

            <name>红牛凤凰全球连线(28/09/09) </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 05:05</playTime>  <!--播出时间-->

            <name>红云红河时事开讲(28/09/09)  </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 05:30</playTime>  <!--播出时间-->

            <name>别巡检调查队(34)(R) </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
    </ProgramList>
</typeB>
<?xml version="1.0" encoding="utf-8" ?>
<typeB version =" 1.0">
    <ProgramList>
        <Program>
            <playTime>2009-9-29 01:30</playTime>  <!--播出时间-->

            <name>简单工厂模式</name>          <!--节目名称-->
            <path>D:\简单工厂模式.wmv</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 02:10</playTime>  <!--播出时间-->

            <name>非凡人物论成功(713)</name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 02:15</playTime>  <!--播出时间-->

            <name>有报天天读(28/09/09) </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 02:40</playTime>  <!--播出时间-->

            <name>娱乐大风暴(682) </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 03:15</playTime>  <!--播出时间-->

            <name>上海新长宁集团特约之2009中华小姐环球大赛-美丽前奏(41) </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 03:20</playTime>  <!--播出时间-->

            <name>完全时尚手册:天桥云裳(632)  </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 03:40</playTime>  <!--播出时间-->

            <name>东风康明斯凤凰冲击播:天力士特约之今日看世界(39)  </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 04:25</playTime>  <!--播出时间-->

            <name>音乐中国风(442)  </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 04:35</playTime>  <!--播出时间-->

            <name>维维健康新概念(193) </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 04:40</playTime>  <!--播出时间-->

            <name>红牛凤凰全球连线(28/09/09) </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 05:05</playTime>  <!--播出时间-->

            <name>红云红河时事开讲(28/09/09)  </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
        <Program>
            <playTime>2009-9-29 05:30</playTime>  <!--播出时间-->

            <name>别巡检调查队(34)(R) </name>          <!--节目名称-->
            <path>**</path>          <!--节目视频的本地路径-->
        </Program>
    </ProgramList>
</typeB>

代码:

代码:

1.频道类

1.频道类

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

namespace 网络电视精灵
{
    public abstract class ChannelBase
    {
        /// <summary>
        /// 频道类
        /// </summary>
        /// 
        //频道名称
        public string Name { get; set; }
        //频道节目集合
        public List<TV> List { get; set; }
        //频道xml地址
        public string Path { get; set; }
        //频道类型
        public string Type { get; set; }
        public ChannelBase(string name,string path,string type)
        {
            this.Name = name;
            this.Path = path;
            this.Type = type;
            this.List = new List<TV>();
        }
        public ChannelBase()
       {
       }
        public abstract void Fetch();

    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 网络电视精灵
{
    public abstract class ChannelBase
    {
        /// <summary>
        /// 频道类
        /// </summary>
        /// 
        //频道名称
        public string Name { get; set; }
        //频道节目集合
        public List<TV> List { get; set; }
        //频道xml地址
        public string Path { get; set; }
        //频道类型
        public string Type { get; set; }
        public ChannelBase(string name,string path,string type)
        {
            this.Name = name;
            this.Path = path;
            this.Type = type;
            this.List = new List<TV>();
        }
        public ChannelBase()
       {
       }
        public abstract void Fetch();

    }
}

2.TV类

2.TV类

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

namespace 网络电视精灵
{
    public class TV
    {
        /// <summary>
        /// 电视节目类
        /// </summary>
        /// 

        //节目开始时间
      public DateTime PlayTime { get; set; }
        //节目名称
      public string ProgramName { get; set; }
        //节目地址
      public string FilePath { get; set; }
       public TV()
       {
       }
       public TV( DateTime playtime,string name,string filepath)
       {
           this.PlayTime = playtime;
           this.ProgramName = name;
           this.FilePath = filepath;
       }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 网络电视精灵
{
    public class TV
    {
        /// <summary>
        /// 电视节目类
        /// </summary>
        /// 

        //节目开始时间
      public DateTime PlayTime { get; set; }
        //节目名称
      public string ProgramName { get; set; }
        //节目地址
      public string FilePath { get; set; }
       public TV()
       {
       }
       public TV( DateTime playtime,string name,string filepath)
       {
           this.PlayTime = playtime;
           this.ProgramName = name;
           this.FilePath = filepath;
       }
    }
}

3.工厂类

3.工厂类

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

namespace 网络电视精灵
{
    class Factory
    {
        /// <summary>
        /// 工厂类
        /// </summary>
        /// <param name="type"></param>
        /// <param name="name"></param>
        /// <param name="path"></param>
        /// <returns></returns>
        //简单工厂方法生成频道对象
        public static ChannelBase create(string type, string name, string path)
        {
            ChannelBase cb = null;
            switch (type)
            {
                case "TypeA":
                    cb = new BJ(name, path,type);
                    break;
                case "TypeB":
                    cb = new FH(name, path,type);
                    break;
            }
            return cb;
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 网络电视精灵
{
    class Factory
    {
        /// <summary>
        /// 工厂类
        /// </summary>
        /// <param name="type"></param>
        /// <param name="name"></param>
        /// <param name="path"></param>
        /// <returns></returns>
        //简单工厂方法生成频道对象
        public static ChannelBase create(string type, string name, string path)
        {
            ChannelBase cb = null;
            switch (type)
            {
                case "TypeA":
                    cb = new BJ(name, path,type);
                    break;
                case "TypeB":
                    cb = new FH(name, path,type);
                    break;
            }
            return cb;
        }
    }
}

4.管理类

4.管理类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace 网络电视精灵
{
    class Management
    {
        //提醒类的静态集合,用于保存添加的提醒
        public static List<Remind> Rlist = new List<Remind>();
        //管理类方法,处理xml文件,返回处理后的频道对象的集合
        public static List<ChannelBase> load()
        {

            List<ChannelBase> List = new List<ChannelBase>();
            XmlDocument dic = new XmlDocument();
            dic.Load("files\\FullChannels.xml");
            XmlNode root = dic.DocumentElement;
            foreach (XmlNode item in root)
            {
                ChannelBase cb=Factory.create(item["channelType"].InnerText,item["tvChannel"].InnerText,item["path"].InnerText);
                cb.Fetch();
                List.Add(cb);
            }
            return List;
        }
        //向提醒类集合添加对象的方法
        public static bool  remind(DateTime playtime,  string ProgramName,DateTime reminddatetime)
        {
            bool flag =true;
            foreach (Remind item in Rlist)
            {
                if (item.ProgramName == ProgramName && item.Reminddatetime == reminddatetime)
                {
                    flag = false;
                }
            }
            if (flag)
            {
                Remind r = new Remind(playtime, ProgramName, reminddatetime);
                Management.Rlist.Add(r);
            }
            return flag;
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace 网络电视精灵
{
    class Management
    {
        //提醒类的静态集合,用于保存添加的提醒
        public static List<Remind> Rlist = new List<Remind>();
        //管理类方法,处理xml文件,返回处理后的频道对象的集合
        public static List<ChannelBase> load()
        {

            List<ChannelBase> List = new List<ChannelBase>();
            XmlDocument dic = new XmlDocument();
            dic.Load("files\\FullChannels.xml");
            XmlNode root = dic.DocumentElement;
            foreach (XmlNode item in root)
            {
                ChannelBase cb=Factory.create(item["channelType"].InnerText,item["tvChannel"].InnerText,item["path"].InnerText);
                cb.Fetch();
                List.Add(cb);
            }
            return List;
        }
        //向提醒类集合添加对象的方法
        public static bool  remind(DateTime playtime,  string ProgramName,DateTime reminddatetime)
        {
            bool flag =true;
            foreach (Remind item in Rlist)
            {
                if (item.ProgramName == ProgramName && item.Reminddatetime == reminddatetime)
                {
                    flag = false;
                }
            }
            if (flag)
            {
                Remind r = new Remind(playtime, ProgramName, reminddatetime);
                Management.Rlist.Add(r);
            }
            return flag;
        }
    }
}

伍.香港(Hong Kong)电台类

5.东方之珠广播台类

sing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace 网络电视精灵
{
    class BJ:ChannelBase
    {
        /// <summary>
        /// 北京电视台类
        /// </summary>
         public BJ()
        {
        }
         public BJ(string name, string path,string type)
            : base(name,path,type)
        {

        }
        //解析北京电视台xml文件方法
        public override void Fetch()
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(Path);
            XmlNode no = doc.DocumentElement;
            foreach (XmlNode item in no)
            {
                if (item.Name == "tvProgramTable")
                {
                    foreach (XmlNode it in item)
                    {
                        TV tv = new TV(Convert.ToDateTime(it["playTime"].InnerText), it["programName"].InnerText, it["path"].InnerText);
                        this.List.Add(tv);
                    }
                }
            }
        }
    }
}
sing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace 网络电视精灵
{
    class BJ:ChannelBase
    {
        /// <summary>
        /// 北京电视台类
        /// </summary>
         public BJ()
        {
        }
         public BJ(string name, string path,string type)
            : base(name,path,type)
        {

        }
        //解析北京电视台xml文件方法
        public override void Fetch()
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(Path);
            XmlNode no = doc.DocumentElement;
            foreach (XmlNode item in no)
            {
                if (item.Name == "tvProgramTable")
                {
                    foreach (XmlNode it in item)
                    {
                        TV tv = new TV(Convert.ToDateTime(it["playTime"].InnerText), it["programName"].InnerText, it["path"].InnerText);
                        this.List.Add(tv);
                    }
                }
            }
        }
    }
}

六.凤凰香港卫星TV有限公司类

6.凤凰香港卫星电视机有限公司类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace 网络电视精灵
{
    class FH:ChannelBase
    {
        /// <summary>
        /// 凤凰卫视类
        /// </summary>
        public FH()
        {
        }
        public FH(string name,string path,string type)
            : base(name,path,type)
        {

        }
        //解析凤凰卫视xml文件的方法
        public override void Fetch()
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(Path);
            XmlNode no = doc.DocumentElement;
            foreach (XmlNode item in no.ChildNodes)
            {
                foreach (XmlNode it in item)
                {
                    TV tv = new TV(Convert.ToDateTime(it["playTime"].InnerText),it["name"].InnerText,it["path"].InnerText);
                    this.List.Add(tv);
                }
            }
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace 网络电视精灵
{
    class FH:ChannelBase
    {
        /// <summary>
        /// 凤凰卫视类
        /// </summary>
        public FH()
        {
        }
        public FH(string name,string path,string type)
            : base(name,path,type)
        {

        }
        //解析凤凰卫视xml文件的方法
        public override void Fetch()
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(Path);
            XmlNode no = doc.DocumentElement;
            foreach (XmlNode item in no.ChildNodes)
            {
                foreach (XmlNode it in item)
                {
                    TV tv = new TV(Convert.ToDateTime(it["playTime"].InnerText),it["name"].InnerText,it["path"].InnerText);
                    this.List.Add(tv);
                }
            }
        }
    }
}

7.提醒类

威尼斯人线上娱乐 ,7.提醒类

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

namespace 网络电视精灵
{
    class Remind:TV
    {
        /// <summary>
        /// 提醒类
        /// </summary>
        /// 
        //提醒时间
        public DateTime Reminddatetime { get; set; }
        public Remind()
        {

        }
        public Remind(DateTime playtime, string ProgramName, DateTime reminddatetime)
        {
            this.PlayTime = playtime;
            this.ProgramName = ProgramName;
            this.Reminddatetime = reminddatetime;
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 网络电视精灵
{
    class Remind:TV
    {
        /// <summary>
        /// 提醒类
        /// </summary>
        /// 
        //提醒时间
        public DateTime Reminddatetime { get; set; }
        public Remind()
        {

        }
        public Remind(DateTime playtime, string ProgramName, DateTime reminddatetime)
        {
            this.PlayTime = playtime;
            this.ProgramName = ProgramName;
            this.Reminddatetime = reminddatetime;
        }
    }
}

八.主窗体代码

八.主窗体代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 网络电视精灵
{

    public partial class TvShow : Form
    {
        TreeNode root = null;
        public static Remindmg rmg;
        public TvShow()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //创建根节点
            dataGridView1.AutoGenerateColumns = false;
            root = new TreeNode("我的电视台");
            tree.Nodes.Add(root);
            info();
        }
        //创建所有电视台的方法
        private void info()
        {

            TreeNode tn = new TreeNode("所有电视台");
            tree.Nodes.Add(tn);
            List<ChannelBase> list = Management.load();
            foreach (ChannelBase item in list)
            {
                item.Fetch();
                TreeNode tn1 = new TreeNode(item.Name);
                tn1.Tag = item;
                tn.Nodes.Add(tn1);
            }
        }

        private void tree_AfterSelect(object sender, TreeViewEventArgs e)
        {
            //显示右键菜单的方法
            if (tree.SelectedNode.Tag != null)
            {
                dataGridView1.DataSource = ((ChannelBase)tree.SelectedNode.Tag).List;
            }
            foreach (TreeNode item in tree.Nodes)
            {

                foreach (TreeNode item1 in item.Nodes)
                {
                    if (item1.Parent.Text == tree.Nodes[0].Text && item1 == tree.SelectedNode)
                    {
                        tree.ContextMenuStrip = contextMenuStrip1;

                    }
                    else if (item1.Parent.Text == tree.Nodes[1].Text && item1 == tree.SelectedNode)
                    {
                        tree.ContextMenuStrip = contextMenuStrip2;
                    }
                    else if (item == tree.SelectedNode)
                    {
                        tree.ContextMenuStrip = null;
                    }

                }
            }
        }

        private void tree_NodeMouseHover(object sender, TreeNodeMouseHoverEventArgs e)
        {

        }

        private void 加入我的电视台ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //将频道加入我的我的电视台的方法
            bool flag = true;

            foreach (TreeNode item in tree.Nodes[0].Nodes)
            {

                if (item.Text == tree.SelectedNode.Text)
                {
                    flag = false;
                }



            }
            if (flag)
            {
                TreeNode tn = new TreeNode(tree.SelectedNode.Text);
                tn.Tag = tree.SelectedNode.Tag;
                root.Nodes.Add(tn);
            }
            else
            {
                MessageBox.Show("已经添加到我的电视了","提示");
            }
        }

        private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //删除我的频道的方法
            tree.SelectedNode.Remove();
        }

        private void toolStripMenuItem1_Click(object sender, EventArgs e)
        {
            //添加播放时提醒
            DateTime Remind = Convert.ToDateTime(dataGridView1.SelectedRows[0].Cells[0].Value);
            Add(Remind);
        }

        private void Add(DateTime Remind)
        {
            //添加提醒的方法
            DateTime playdatime = Convert.ToDateTime(dataGridView1.SelectedRows[0].Cells[0].Value);
            string name = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
            if (Management.remind(playdatime, name, Remind))
            {
                MessageBox.Show("添加成功", "提示");
                updateRmg();
            }
            else
            {
                MessageBox.Show("添加失败,已经添加过该提醒了", "提示");
            }
        }   
        //更新提醒列表的方法
        public void updateRmg()
        {
            if (rmg != null)
            {
                rmg.Remindmginfo();
            }
        }
        private void 提前十分钟提醒ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //提前十分钟提醒
            DateTime Remind = Convert.ToDateTime(dataGridView1.SelectedRows[0].Cells[0].Value).AddMinutes(-10);
            Add(Remind);
        }

        private void 提前三十分钟提醒ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //提前三十分钟提醒
            DateTime Remind = Convert.ToDateTime(dataGridView1.SelectedRows[0].Cells[0].Value).AddMinutes(-30);
            Add(Remind);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            //到时提醒的方法
           string time=DateTime.Now.ToString("yyyy-MM-dd hh:mm");
           Remind r = null;
            foreach (Remind item in Management.Rlist)
            {
                if ((item.Reminddatetime.ToString("yyyy-MM-dd hh:mm")).Equals(time))
                {
                    MessageBox.Show(item.ProgramName+"马上就要开始了","提示",MessageBoxButtons.OK);
                    r = item;
                }
            }
            if (r != null)
            {
                Management.Rlist.Remove(r);
                updateRmg();
            }
        }

        private void 提醒管理ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //点击提醒管理打开提醒窗体
            Remindmg from = new Remindmg();
            from.Show();
        }
    }
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 网络电视精灵
{

    public partial class TvShow : Form
    {
        TreeNode root = null;
        public static Remindmg rmg;
        public TvShow()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //创建根节点
            dataGridView1.AutoGenerateColumns = false;
            root = new TreeNode("我的电视台");
            tree.Nodes.Add(root);
            info();
        }
        //创建所有电视台的方法
        private void info()
        {

            TreeNode tn = new TreeNode("所有电视台");
            tree.Nodes.Add(tn);
            List<ChannelBase> list = Management.load();
            foreach (ChannelBase item in list)
            {
                item.Fetch();
                TreeNode tn1 = new TreeNode(item.Name);
                tn1.Tag = item;
                tn.Nodes.Add(tn1);
            }
        }

        private void tree_AfterSelect(object sender, TreeViewEventArgs e)
        {
            //显示右键菜单的方法
            if (tree.SelectedNode.Tag != null)
            {
                dataGridView1.DataSource = ((ChannelBase)tree.SelectedNode.Tag).List;
            }
            foreach (TreeNode item in tree.Nodes)
            {

                foreach (TreeNode item1 in item.Nodes)
                {
                    if (item1.Parent.Text == tree.Nodes[0].Text && item1 == tree.SelectedNode)
                    {
                        tree.ContextMenuStrip = contextMenuStrip1;

                    }
                    else if (item1.Parent.Text == tree.Nodes[1].Text && item1 == tree.SelectedNode)
                    {
                        tree.ContextMenuStrip = contextMenuStrip2;
                    }
                    else if (item == tree.SelectedNode)
                    {
                        tree.ContextMenuStrip = null;
                    }

                }
            }
        }

        private void tree_NodeMouseHover(object sender, TreeNodeMouseHoverEventArgs e)
        {

        }

        private void 加入我的电视台ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //将频道加入我的我的电视台的方法
            bool flag = true;

            foreach (TreeNode item in tree.Nodes[0].Nodes)
            {

                if (item.Text == tree.SelectedNode.Text)
                {
                    flag = false;
                }



            }
            if (flag)
            {
                TreeNode tn = new TreeNode(tree.SelectedNode.Text);
                tn.Tag = tree.SelectedNode.Tag;
                root.Nodes.Add(tn);
            }
            else
            {
                MessageBox.Show("已经添加到我的电视了","提示");
            }
        }

        private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //删除我的频道的方法
            tree.SelectedNode.Remove();
        }

        private void toolStripMenuItem1_Click(object sender, EventArgs e)
        {
            //添加播放时提醒
            DateTime Remind = Convert.ToDateTime(dataGridView1.SelectedRows[0].Cells[0].Value);
            Add(Remind);
        }

        private void Add(DateTime Remind)
        {
            //添加提醒的方法
            DateTime playdatime = Convert.ToDateTime(dataGridView1.SelectedRows[0].Cells[0].Value);
            string name = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
            if (Management.remind(playdatime, name, Remind))
            {
                MessageBox.Show("添加成功", "提示");
                updateRmg();
            }
            else
            {
                MessageBox.Show("添加失败,已经添加过该提醒了", "提示");
            }
        }   
        //更新提醒列表的方法
        public void updateRmg()
        {
            if (rmg != null)
            {
                rmg.Remindmginfo();
            }
        }
        private void 提前十分钟提醒ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //提前十分钟提醒
            DateTime Remind = Convert.ToDateTime(dataGridView1.SelectedRows[0].Cells[0].Value).AddMinutes(-10);
            Add(Remind);
        }

        private void 提前三十分钟提醒ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //提前三十分钟提醒
            DateTime Remind = Convert.ToDateTime(dataGridView1.SelectedRows[0].Cells[0].Value).AddMinutes(-30);
            Add(Remind);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            //到时提醒的方法
           string time=DateTime.Now.ToString("yyyy-MM-dd hh:mm");
           Remind r = null;
            foreach (Remind item in Management.Rlist)
            {
                if ((item.Reminddatetime.ToString("yyyy-MM-dd hh:mm")).Equals(time))
                {
                    MessageBox.Show(item.ProgramName+"马上就要开始了","提示",MessageBoxButtons.OK);
                    r = item;
                }
            }
            if (r != null)
            {
                Management.Rlist.Remove(r);
                updateRmg();
            }
        }

        private void 提醒管理ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //点击提醒管理打开提醒窗体
            Remindmg from = new Remindmg();
            from.Show();
        }
    }
}

九.提示窗体代码

玖.提示窗体代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 网络电视精灵
{
    public partial class Remindmg : Form
    {
        public Remindmg()
        {
            InitializeComponent();
        }

        private void Remindmg_Load(object sender, EventArgs e)
        {
            //设置不显示未绑定的列
            dataGridView1.AutoGenerateColumns = false;
            //获取提醒窗体对象
            TvShow.rmg = this;

            Remindmginfo();
        }
           //绑定数据源
        public void Remindmginfo()
        {
            BindingSource bs = new BindingSource();
            bs.DataSource = Management.Rlist;
            dataGridView1.DataSource = bs;
        }
        //删除的方法
        private void 删除提醒ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count > 0)
            {
                Remind r = null;
                string name = dataGridView1.SelectedRows[0].Cells["ProgramName"].Value.ToString();
                string datetime = dataGridView1.SelectedRows[0].Cells["remindtime"].Value.ToString();
                foreach (Remind item in Management.Rlist)
                {
                    if (item.ProgramName == name && item.Reminddatetime.ToString().Equals(datetime))
                    {
                        r = item;
                    }
                }
                if (r != null
                    )
                {
                    Management.Rlist.Remove(r);
                    Remindmginfo();
                }
            }
        }
    }
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 网络电视精灵
{
    public partial class Remindmg : Form
    {
        public Remindmg()
        {
            InitializeComponent();
        }

        private void Remindmg_Load(object sender, EventArgs e)
        {
            //设置不显示未绑定的列
            dataGridView1.AutoGenerateColumns = false;
            //获取提醒窗体对象
            TvShow.rmg = this;

            Remindmginfo();
        }
           //绑定数据源
        public void Remindmginfo()
        {
            BindingSource bs = new BindingSource();
            bs.DataSource = Management.Rlist;
            dataGridView1.DataSource = bs;
        }
        //删除的方法
        private void 删除提醒ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count > 0)
            {
                Remind r = null;
                string name = dataGridView1.SelectedRows[0].Cells["ProgramName"].Value.ToString();
                string datetime = dataGridView1.SelectedRows[0].Cells["remindtime"].Value.ToString();
                foreach (Remind item in Management.Rlist)
                {
                    if (item.ProgramName == name && item.Reminddatetime.ToString().Equals(datetime))
                    {
                        r = item;
                    }
                }
                if (r != null
                    )
                {
                    Management.Rlist.Remove(r);
                    Remindmginfo();
                }
            }
        }
    }
}

 

 


相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图