首页 > 代码库 > (深入.Net平台和C#编程)第八章.上机练习(网络电视精灵).20170415

(深入.Net平台和C#编程)第八章.上机练习(网络电视精灵).20170415

技术分享
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace lesson8_5
 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 <TypeA>
 3   <channelName>北京电视台</channelName> <!--电视台名称-->
 4   <tvProgramTable>
 5     <tvProgram>
 6       <playTime>2013-9-29 6:02:00</playTime><!--节目播出时间-->
 7       <meridien>早间档</meridien><!--时段-->
 8       <programName>重播:国际双行线</programName><!--节目名称-->
 9       <path>c:\a.wma</path><!--节目视频的本地路径-->
10     </tvProgram>
11     <tvProgram>
12       <playTime>2013-9-29 7:00:00</playTime><!--节目播出时间-->
13       <meridien>早间档</meridien><!--时段-->
14       <programName>北京您好</programName><!--节目名称-->
15       <path>c:\a.wma</path><!--节目视频的本地路径-->
16     </tvProgram>
17     <tvProgram>
18       <playTime>2013-9-29 9:02:00</playTime>
19       <!--节目播出时间-->
20       <meridien>早间档</meridien>
21       <!--时段-->
22       <programName>重播《红星剧场》32集剧:勇者无敌(31)</programName>
23       <!--节目名称-->
24       <path>c:\a.wma</path>
25       <!--节目视频的本地路径-->
26     </tvProgram>
27     <tvProgram>
28       <playTime>2013-9-29 9:58:00</playTime>
29       <!--节目播出时间-->
30       <meridien>早间档</meridien>
31       <!--时段-->
32       <programName>重播《红星剧场》32集剧:勇者无敌(32)</programName>
33       <!--节目名称-->
34       <path>c:\a.wma</path>
35       <!--节目视频的本地路径-->
36     </tvProgram>
37     <tvProgram>
38       <playTime>2013-9-29 11:15:00</playTime>
39       <!--节目播出时间-->
40       <meridien>无间档</meridien>
41       <!--时段-->
42       <programName>重播:专题片:我爱你,中国(14)</programName>
43       <!--节目名称-->
44       <path>c:\a.wma</path>
45       <!--节目视频的本地路径-->
46     </tvProgram>
47     <tvProgram>
48       <playTime>2013-9-29 11:58:00</playTime><!--节目播出时间-->
49       <meridien>午间档</meridien><!--时段-->
50       <programName>身边</programName><!--节目名称-->
51       <path>c:\a.wma</path><!--节目视频的本地路径-->
52     </tvProgram>
53   </tvProgramTable>
54 </TypeA>
北京电视台节目
技术分享
 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <TypeB>
 3   <channelName>凤凰电视台</channelName> <!--电视台名称-->
 4   <tvProgramTable>
 5     <tvProgram>
 6       <playTime>2013-9-29 1:30:00</playTime><!--节目播出时间-->
 7       <meridien>早间档</meridien><!--时段-->
 8       <programName>金龙鱼凤凰剧场:李算</programName><!--节目名称-->
 9       <path>c:\a.wma</path><!--节目视频的本地路径-->
10     </tvProgram>
11     <tvProgram>
12       <playTime>2013-9-29 2:10:00</playTime><!--节目播出时间-->
13       <meridien>早间档</meridien><!--时段-->
14       <programName>非凡人物论成功</programName><!--节目名称-->
15       <path>c:\a.wma</path><!--节目视频的本地路径-->
16     </tvProgram>
17     <tvProgram>
18       <playTime>2013-9-29 2:15:00</playTime>
19       <!--节目播出时间-->
20       <meridien>早间档</meridien>
21       <!--时段-->
22       <programName>有报天天读</programName>
23       <!--节目名称-->
24       <path>c:\a.wma</path>
25       <!--节目视频的本地路径-->
26     </tvProgram>
27     <tvProgram>
28       <playTime>2013-9-29 2:40:00</playTime>
29       <!--节目播出时间-->
30       <meridien>早间档</meridien>
31       <!--时段-->
32       <programName>娱乐大风暴</programName>
33       <!--节目名称-->
34       <path>c:\a.wma</path>
35       <!--节目视频的本地路径-->
36     </tvProgram>
37     <tvProgram>
38       <playTime>2013-9-29 3:15:00</playTime>
39       <!--节目播出时间-->
40       <meridien>无间档</meridien>
41       <!--时段-->
42       <programName>上海新长宁</programName>
43       <!--节目名称-->
44       <path>c:\a.wma</path>
45       <!--节目视频的本地路径-->
46     </tvProgram>
47     <tvProgram>
48       <playTime>2013-9-29 3:20:00</playTime><!--节目播出时间-->
49       <meridien>午间档</meridien><!--时段-->
50       <programName>完全时尚手册:天桥云裳</programName><!--节目名称-->
51       <path>c:\a.wma</path><!--节目视频的本地路径-->
52     </tvProgram>
53   </tvProgramTable>
54 </TypeB>
凤凰卫视台节目
技术分享
  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 lesson8_5
 13 {
 14     public partial class frmMain : Form
 15     {
 16         public frmMain()
 17         {
 18             InitializeComponent();
 19         }
 20         /// <summary>
 21         /// 初始电视台
 22         /// </summary>
 23         public void IniStation()
 24         {
 25             TreeNode node = new TreeNode("我的电视台");
 26             TreeNode node1 = new TreeNode("所有电视台");
 27             tvStation.Nodes.Add(node);
 28             tvStation.Nodes.Add(node1);
 29         }
 30 
 31         /// <summary>
 32         /// 窗体加载事件
 33         /// </summary>
 34         /// <param name="sender"></param>
 35         /// <param name="e"></param>
 36         private void frmMain_Load(object sender, EventArgs e)
 37         {
 38             IniStation();
 39             BindBeiJing();
 40             BindFengHuang();
 41             BindFHProgram();
 42             BindBJProgram();
 43         }
 44 
 45         /// <summary>
 46         /// 绑定北京电视台
 47         /// </summary>
 48         public void BindBeiJing()
 49         {
 50             string stationName = BindStation("北京电视台节目.xml");
 51             tvStation.Nodes[1].Nodes.Add(stationName);
 52         }
 53 
 54         /// <summary>
 55         /// 获取电视台名称
 56         /// </summary>
 57         public string BindStation(string path)
 58         {
 59             string stationName = "";
 60             XmlDocument myXml = new XmlDocument();
 61             myXml.Load(path);
 62             XmlNode node = myXml.DocumentElement;
 63             foreach (XmlNode nod in node.ChildNodes)
 64             {
 65                 switch (nod.Name)
 66                 {
 67                     case "channelName":
 68                         stationName = nod.InnerText;
 69                         break;
 70                 }
 71             }
 72             return stationName;
 73         }
 74 
 75         /// <summary>
 76         /// 绑定凤凰电视台
 77         /// </summary>
 78         public void BindFengHuang()
 79         {
 80             string stationName = BindStation("凤凰卫视台节目.xml");
 81             tvStation.Nodes[1].Nodes.Add(stationName);
 82         }
 83         //存储北京电视台节目
 84         List<TvProgram> bj = new List<TvProgram>();
 85         //存储凤凰电视台节目
 86         List<TvProgram> fh = new List<TvProgram>();
 87 
 88         /// <summary>
 89         /// 绑定凤凰卫视台节目
 90         /// </summary>
 91         public void BindFHProgram()
 92         {
 93             XmlDocument myXml = new XmlDocument();
 94             myXml.Load("凤凰卫视台节目.xml");
 95             XmlNode node = myXml.DocumentElement;
 96             foreach (XmlNode nod in node.ChildNodes)
 97             {
 98                 switch (nod.Name)
 99                 {
100                     case "channelName":
101                         
102                         break;
103                     case "tvProgramTable":
104                         foreach (XmlNode item in nod.ChildNodes)
105                         {
106                             TvProgram tv = new TvProgram();
107                             tv.ProgramName = item["programName"].InnerText;
108                             tv.Time = item["playTime"].InnerText;
109                             fh.Add(tv);
110                         }
111                         break;
112                 }
113             }
114         }
115 
116         /// <summary>
117         /// 绑定北京电视节目
118         /// </summary>
119         public void BindBJProgram()
120         {
121             XmlDocument myXml = new XmlDocument();
122             myXml.Load("北京电视台节目.xml");
123             XmlNode node = myXml.DocumentElement;
124             foreach (XmlNode nod in node.ChildNodes)
125             {
126                 switch (nod.Name)
127                 {
128                     case "channelName":
129 
130                         break;
131                     case "tvProgramTable":
132                         foreach (XmlNode item in nod.ChildNodes)
133                         {
134                             TvProgram tv = new TvProgram();
135                             tv.ProgramName = item["programName"].InnerText;
136                             tv.Time = item["playTime"].InnerText;
137                             bj.Add(tv);
138                         }
139                         break;
140                 }
141             }
142         }
143 
144         /// <summary>
145         /// 通过选定项绑定dgv
146         /// </summary>
147         /// <param name="sender"></param>
148         /// <param name="e"></param>
149         private void tvStation_AfterSelect(object sender, TreeViewEventArgs e)
150         {
151             if (tvStation.SelectedNode.Parent != null && tvStation.SelectedNode.Parent.Text.Equals("我的电视台"))
152             {
153                 cmsMenu.Items[1].Visible = false;
154                 cmsMenu.Items[0].Visible = true;
155             }
156 
157             else
158             {
159                 cmsMenu.Items[0].Visible = false;
160                 cmsMenu.Items[1].Visible = true;
161             }
162             if (tvStation.SelectedNode.Level == 0)
163             {
164                 cmsMenu.Items[0].Visible = false;
165                 cmsMenu.Items[1].Visible = false;
166             }
167 
168             if (tvStation.SelectedNode.Text.Equals("北京电视台"))
169             {
170                 dgvProgram.DataSource = bj;
171             }
172             else if (tvStation.SelectedNode.Text.Equals("凤凰电视台"))
173             {
174                 dgvProgram.DataSource = fh;
175             }
176         }
177 
178         /// <summary>
179         /// 加入我的电视台
180         /// </summary>
181         /// <param name="sender"></param>
182         /// <param name="e"></param>
183         private void tsmiAdd_Click(object sender, EventArgs e)
184         {
185             foreach (TreeNode tr in tvStation.Nodes[0].Nodes)
186             {
187                 if (tr.Text.Equals(tvStation.SelectedNode.Text))
188                 {
189                     MessageBox.Show("已有该频道");
190                     return;
191                 }
192             }
193             tvStation.Nodes[0].Nodes.Add(tvStation.SelectedNode.Text);
194             //展开“我的电视台”的节点
195             tvStation.Nodes[0].Expand();
196         }
197 
198         /// <summary>
199         /// 删除
200         /// </summary>
201         /// <param name="sender"></param>
202         /// <param name="e"></param>
203         private void tsmiDe_Click(object sender, EventArgs e)
204         {
205             tvStation.SelectedNode.Remove();
206         }
207 
208         
209     }
210 }
frmMain

 

(深入.Net平台和C#编程)第八章.上机练习(网络电视精灵).20170415