• 网络电视精灵


     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace Pratice03_05
     8 {
     9     /// <summary>
    10     /// TV节目类
    11     /// </summary>
    12     public class TvProgram
    13     {
    14         //节目名称
    15         public string ProgramName { get; set; }
    16         //时间
    17         public string Time { get; set; }
    18     }
    19 }
    TV节目类
     1 <?xml version="1.0" encoding="utf-8" ?>
     2 <TVChannels>
     3   <Channel>
     4     <channelType>TypeA</channelType>
     5     <!--频道类型-->
     6     <tvChannel>北京电视台</tvChannel>
     7     <!--频道名称-->
     8     <path>file/北京电视台.xml</path>
     9     <!--频道文件路径-->
    10   </Channel>
    11   <Channel>
    12     <channelType>TypeB</channelType>
    13     <tvChannel>广东电视台</tvChannel>
    14     <path>file/广东电视台.xml</path>
    15   </Channel>
    16 </TVChannels>
    FullChannels.xml
     1 <typeA version="1.0">
     2     <channelName>北京电视台</channelName>        <!--电视台名称-->
     3     <tvProgramTable>
     4     
     5         <tvProgram>
     6             <playTime>2016-10-10 06:02</playTime><!--节目播出时间-->
     7             <meridien>早间档</meridien><!--时段-->
     8             <programName>重播:天线低低B</programName><!--节目名称-->
     9             <path>c:A.mp4</path><!--节目视频的本地路径-->
    10         </tvProgram>
    11     
    12     <tvProgram>
    13       <playTime>2016-10-10 07:00</playTime>
    14       <meridien>早间档</meridien>
    15       <programName>重播:新闻联播</programName>
    16       <path>c:B.mp4</path>
    17     </tvProgram>
    18     
    19     <tvProgram>
    20       <playTime>2016-10-10 09:00</playTime>
    21       <meridien>早间档</meridien>
    22       <programName>今日说法</programName>
    23       <path>c:C.mp4</path>
    24     </tvProgram>
    25     
    26     <tvProgram>
    27       <playTime>2016-10-10 12:00</playTime>
    28       <meridien>午间档</meridien>
    29       <programName>新闻联播</programName>
    30       <path>c:D.mp4</path>
    31     </tvProgram>
    32     
    33     </tvProgramTable>
    34 </typeA>
    北京电视台.xml
     1 <typeB version="1.0">
     2     <channelName>广东电视台</channelName>        <!--电视台名称-->
     3     <tvProgramTable>
     4         <tvProgram>
     5             <playTime>2016-10-10 18:02</playTime><!--节目播出时间-->
     6             <meridien>晚间档</meridien><!--时段-->
     7             <programName>今日头条</programName><!--节目名称-->
     8             <path>c:A.mp4</path><!--节目视频的本地路径-->
     9         </tvProgram>
    10 
    11     <tvProgram>
    12       <playTime>2016-10-11 19:00</playTime>
    13       <!--节目播出时间-->
    14       <meridien>晚间档</meridien>
    15       <!--时段-->
    16       <programName>今日新闻</programName>
    17       <!--节目名称-->
    18       <path>c:B.mp4</path>
    19       <!--节目视频的本地路径-->
    20     </tvProgram>
    21 
    22     <tvProgram>
    23       <playTime>2016-10-11 20:00</playTime>
    24       <!--节目播出时间-->
    25       <meridien>晚间档</meridien>
    26       <!--时段-->
    27       <programName>德玛西亚</programName>
    28       <!--节目名称-->
    29       <path>c:C.mp4</path>
    30       <!--节目视频的本地路径-->
    31     </tvProgram>
    32 
    33     <tvProgram>
    34       <playTime>2016-10-11 22:02</playTime>
    35       <!--节目播出时间-->
    36       <meridien>晚间档</meridien>
    37       <!--时段-->
    38       <programName>如何补兵</programName>
    39       <!--节目名称-->
    40       <path>c:D.mp4</path>
    41       <!--节目视频的本地路径-->
    42     </tvProgram>
    43     
    44     </tvProgramTable>
    45 </typeB>
    广东电视台.xml
      1 using System;
      2 using System.Collections.Generic;
      3 using System.ComponentModel;
      4 using System.Data;
      5 using System.Drawing;
      6 using System.Linq;
      7 using System.Text;
      8 using System.Threading.Tasks;
      9 using System.Windows.Forms;
     10 using System.Xml;
     11 
     12 namespace Pratice03_05
     13 {
     14     public partial class FrmMain : Form
     15     {
     16         public FrmMain()
     17         {
     18             InitializeComponent();
     19             Inital();
     20             ShowTV();
     21             BindBeiJingTvList();
     22             BindGuangDongTvList();
     23         }
     24 
     25         List<TvProgram> BeiJing = new List<TvProgram>();
     26         List<TvProgram> GuangDong = new List<TvProgram>();
     27 
     28         /// <summary>
     29         /// 初始化2个节点
     30         /// </summary>
     31         public void Inital()
     32         {
     33             //清空所有节点
     34             this.tvList.Nodes.Clear();
     35             //添加2个父节点
     36             TreeNode nodeFirst = new TreeNode("我的电视台");
     37             TreeNode nodeSecond = new TreeNode("所有电视台");
     38             this.tvList.Nodes.Add(nodeFirst);
     39             this.tvList.Nodes.Add(nodeSecond);
     40         }
     41 
     42         /// <summary>
     43         /// 根据文件名,获取电视台名称
     44         /// </summary>
     45         /// <param name="path">文件名</param>
     46         /// <returns>电视台名称</returns>
     47         public string BindTV(string path)
     48         {
     49             string channelName = "";
     50             XmlDocument xmlDoc = new XmlDocument();
     51             //加载xml文件
     52             xmlDoc.Load(path);
     53             //获取根节点
     54             XmlElement xmlRoot = xmlDoc.DocumentElement;
     55             foreach (XmlNode node in xmlRoot.ChildNodes)
     56             {
     57                 switch (node.Name)
     58                 {
     59                     case "channelName":
     60                         channelName = node.InnerText;
     61                         break;
     62                 }
     63             }
     64             return channelName;
     65         }
     66 
     67         /// <summary>
     68         /// 绑定电视台
     69         /// </summary>
     70         public void ShowTV()
     71         {
     72             string Beijing = BindTV("北京电视台.xml");
     73             string GuangDong = BindTV("广东电视台.xml");
     74             this.tvList.Nodes[1].Nodes.Add(Beijing);
     75             this.tvList.Nodes[1].Nodes.Add(GuangDong);
     76         }
     77 
     78         /// <summary>
     79         /// 绑定北京电视节目
     80         /// </summary>
     81         public void BindBeiJingTvList()
     82         {
     83             XmlDocument myXml = new XmlDocument();
     84             myXml.Load("北京电视台.xml");
     85             XmlNode node = myXml.DocumentElement;
     86             foreach (XmlNode nod in node.ChildNodes)
     87             {
     88                 switch (nod.Name)
     89                 {
     90                     //选中节目
     91                     case "tvProgramTable":
     92                         //遍历该子节点
     93                         foreach (XmlNode item in nod.ChildNodes)
     94                         {
     95                             TvProgram tv = new TvProgram();
     96                             tv.ProgramName = item["programName"].InnerText;
     97                             tv.Time = item["playTime"].InnerText;
     98                             BeiJing.Add(tv);
     99                         }
    100                         break;
    101                 }
    102             }
    103         }
    104 
    105         /// <summary>
    106         /// 绑定广东电视节目
    107         /// </summary>
    108         public void BindGuangDongTvList()
    109         {
    110             XmlDocument myXml = new XmlDocument();
    111             myXml.Load("广东电视台.xml");
    112             XmlNode node = myXml.DocumentElement;
    113             foreach (XmlNode nod in node.ChildNodes)
    114             {
    115                 switch (nod.Name)
    116                 {
    117                     //选中节目
    118                     case "tvProgramTable":
    119                         //遍历该子节点
    120                         foreach (XmlNode item in nod.ChildNodes)
    121                         {
    122                             TvProgram tv = new TvProgram();
    123                             tv.ProgramName = item["programName"].InnerText;
    124                             tv.Time = item["playTime"].InnerText;
    125                             GuangDong.Add(tv);
    126                         }
    127                         break;
    128                 }
    129             }
    130         }
    131 
    132         /// <summary>
    133         /// 选中后右击加入我的电视台
    134         /// </summary>
    135         /// <param name="sender"></param>
    136         /// <param name="e"></param>
    137         private void tsmiAdd_Click(object sender, EventArgs e)
    138         {
    139             //选中的文本
    140             string selectText = tvList.SelectedNode.Text;
    141             //判断是否有选择
    142             if (selectText == null)
    143             {
    144                 MessageBox.Show("请选中其中一项!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
    145                 return;
    146             }
    147             //简单粗暴的判断是否选中了父节点
    148             if (selectText == "我的电视台" || selectText == "所有电视台")
    149             {
    150                 MessageBox.Show("请勿调皮添加!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
    151                 return;
    152             }
    153             //遍历我的电视台里的子节点
    154             foreach (TreeNode tn in tvList.Nodes[0].Nodes)
    155             {
    156                 if (tn.Text.Equals(selectText))
    157                 {
    158                     MessageBox.Show("请勿重复添加!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
    159                     return;
    160                 }
    161             }
    162             tvList.Nodes[0].Nodes.Add(selectText);
    163         }
    164 
    165         /// <summary>
    166         /// 点击删除
    167         /// </summary>
    168         /// <param name="sender"></param>
    169         /// <param name="e"></param>
    170         private void tsmiDelete_Click(object sender, EventArgs e)
    171         {
    172             this.tvList.SelectedNode.Remove();
    173         }
    174 
    175         /// <summary>
    176         /// 鼠标点击树状图节点,判断属于哪一个节点
    177         /// </summary>
    178         /// <param name="sender"></param>
    179         /// <param name="e"></param>
    180         private void tvList_MouseClick(object sender, MouseEventArgs e)
    181         {
    182 
    183             //判断是否选中“我的电视台”,选中该子节点后,将“删除”可用,“添加”不可用
    184             if (tvList.SelectedNode.Parent != null && tvList.SelectedNode.Parent.Text == "我的电视台")
    185             {
    186                 contextMenuStrip.Items[1].Enabled = true;
    187                 contextMenuStrip.Items[0].Enabled = false;
    188             }
    189             //选中“所有电视台”,则将“删除”不可用,“添加”可用
    190             else
    191             {
    192                 contextMenuStrip.Items[1].Enabled = false;
    193                 contextMenuStrip.Items[0].Enabled = true;
    194             }
    195             //若选中根节点,将右键快捷菜单中选项不能使用
    196             if (tvList.SelectedNode.Level == 0)
    197             {
    198                 contextMenuStrip.Items[1].Enabled = false;
    199                 contextMenuStrip.Items[0].Enabled = false;
    200             }
    201 
    202             //根据选中的节点绑定节目
    203             if (tvList.SelectedNode.Text.Equals("北京电视台"))
    204             {
    205                 dgvShow.DataSource = BeiJing;
    206             }
    207             else if (tvList.SelectedNode.Text.Equals("广东电视台"))
    208             {
    209                 dgvShow.DataSource = GuangDong;
    210             }
    211         }
    212     }
    213 }
    主窗体

    以为上程序源代码  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

    程序运行效果视频:

      请移步至 -->http://www.bilibili.com/video/av9897201/

    程序界面图:

  • 相关阅读:
    Linux搭建www,mail,ftp三大DNS服务器
    linux基本命令
    Vmware网络不可达
    CentOS7基本配置一
    https
    阶段02JavaWeb基础day04mysql
    阶段02JavaWeb基础day02&03JavaScript
    阶段02JavaWeb基础day01html&css
    io复用select方法编写的服务器
    for循环 底层工作原理
  • 原文地址:https://www.cnblogs.com/KelanMai/p/6721050.html
Copyright © 2020-2023  润新知