你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 计算机安全与维护
C#制作多功能屏幕保护程序(十)
 

 rssView = new ItemListView<RssItem>(rssFeed.MainChannel.Title, rssFeed.MainChannel.Items);

            InitializeRssView();

 

            // 初始化 ItemDescriptionView 以显示 RssItem 的说明信息。

            // 该信息将出现在屏幕的右侧。

            rssDescriptionView.Dispose();

            rssDescriptionView = new ItemDescriptionView<RssItem>();

            InitializeRssDescriptionView();

 

        }

 

        //访问并显示前一个RSS

        private void PreviorsRss()

        {

            try

            {

                i = i - 1;

                if (i >= Properties.Settings.Default.RssFeedUris.Count)

                {

                    i = 0;

                }

                if (i < 0)

                {

                    i = Properties.Settings.Default.RssFeedUris.Count - 1;

                }

                rssFeed = RssFeed.FromUri(Properties.Settings.Default.RssFeedUris[i]);

            }

            catch

            {

                rssFeed = RssFeed.FromText(Properties.Resources.DefaultRSSText);

            }

 

            //读取完后还需要重新建立显示对象

            //这个函数很关键,一定要释放资源

            rssView.Dispose();

 

            rssView = new ItemListView<RssItem>(rssFeed.MainChannel.Title, rssFeed.MainChannel.Items);

            InitializeRssView();

 

            // 初始化 ItemDescriptionView 以显示 RssItem 的说明信息。

            // 该信息将出现在屏幕的右侧。

            rssDescriptionView.Dispose();

            rssDescriptionView = new ItemDescriptionView<RssItem>();

            InitializeRssDescriptionView();

 }

i是用来标识现在显示的RSS源在程序设置的字符串集合中位置的静态变量,要在ScreenSaverForm.cs中先定义好。键盘响应回车键打开RSS项对应的网页,使用SuperLink函数,代码如下:

        //打开超级链接

        private void SuperLink()

        {

            System.Diagnostics.Process.Start(rssFeed.Channels[0].Items[rssView.SelectedIndex].Link);

            Close();

}

键盘响应函数代码如下:

        private void ScreenSaverForm_KeyDown(object sender, KeyEventArgs e)

        {

            switch (e.KeyCode)

            {

                case Keys.Up:

                    rssView.PreviousArticle();

                    break;

                case Keys.Down:

                    rssView.NextArticle();

                    break;

                case Keys.Left:

                    PreviorsRss();

                    break;

                case Keys.Right:

                    NextRss();

                    break;

                case Keys.Enter:

                    SuperLink();

                    break;

                default:

                    Close();

                    break;

            }

        }

 

到这里整个程序就已经完成了,可以直接编译运行,不过有点小瑕疵,就是在添加或删除一个RSS源后,RssListBox并没有马上显示变更的效果,这是因为在操作后没有及时调用RssListBox的刷新函数。原例程中的RssFeed类只能访问UTF-8编码的RSS源,如果有兴趣可以加以改进,使它能访问其他编码方式的RSS源。只有自己动手做过,印象才会深刻,理解才会更透彻,这两个功能相信读者可以做出来。

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089