最近无所事事,闲着无聊,在网上翻看资料时碰巧看到了屏保制作,根据大神的思路也理解到屏保也不是很难。因此根据我自己的理解,动手谢了一个屏保。

  首先,打开VS2010创建一个Windows窗体应用程序,名称可以随便取(我取名ScreeTest),程序创建成功后,VS2010自动打开Form1窗体,由于屏保运行时界面布满整个屏幕,而且在任务管理器中也没有对应的exe程序,因此我们需要设置窗口属性:FormBoderStyle属性为None,ShowInTaskbar属性为False,WindowState属性为Maximized,AutoScaleMode属性为Font。然后在窗体中拖入控件,label(1个)-显示当前时间、timer(2个)-刷新时间、图片位置变化刷新,控件位置随便放。设置timer属性Interval为100。好了,界面布局就这样。

  然后就是后台程序的编写。下面我直接上码:

  1、设置动态时间:

public partial class Form1 : Form
{
     public Form1 ()
{
InitializeComponent();
this.DoubleBuffered = true;//设置本窗体双缓存
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
        timer1.Start();
        timer2.Start();
} private void Form1 _Load(object sender, EventArgs e)
{
//窗体单击时退出程序
this.Click += new System.EventHandler(Exit);
this.lblTimeNow.Location = new System.Drawing.Point((this.Size.Width / ), this.Size.Height / +);//设置label显示位置屏幕中上方
} private void Exit(object sender, EventArgs e)
{
Application.Exit();
}
private void timer1_Tick(object sender, EventArgs e)
{
lblTimeNow.Text = DateTime.Now.ToString();
} private void Form1 _Deactivate(object sender, EventArgs e)
{
Application.Exit();
}
}
}

  2、动态图片设置

//设置全局变量用于切换图片位置
private BitMap bp=new BitMap("Blue.jpg");//设置图片
private Random rd=new Random();
private int x=;
private int y=; private void timer2_Tick(object sender,EventArgs e)
{
//获取屏幕大小
Rectangle rt =Screen.GetWorkingArea(this);
x=rd.Next(rt.Width);
y=rd.Next(rt.Height);
if(x+bp.Width>rt.Width)
{
x=rt.Width-bp.Width;
}
if(y+bp.Height>rt.Height)
{
y=rt.Height-bp.Height;
}
this.Invalidate();
}
private void Form1_Paint(object sender,PaintEventArgs e)
{
e.Graphics.DrawImage(bp,x,y,bp.Width,bp.Height);
}

这样,程序就写完了,编译生成运行。效果就出来了

C# 制作屏保(图片位置随机变化)的更多相关文章

  1. C#制作简易屏保

    前言:前段时间,有个网友问我C#制作屏保的问题,我瞬间懵逼了(C#还可以制作屏保!).于是我去查阅相关资料,下面把C#如何制作屏保的过程及我学习过程的心得也记录下来,希望对需要的人能有帮助. 基本思路 ...

  2. C#制作简易屏保(转)

    C#制作简易屏保[原创] 原始网址: http://www.cnblogs.com/drizzlecrj/archive/2006/10/06/522182.html 2006-10-06 16:25 ...

  3. WPF 制作 Windows 屏保

    分享如何使用WPF 制作 Windows 屏保 WPF 制作 Windows 屏保 作者:驚鏵 原文链接:https://github.com/yanjinhuagood/ScreenSaver 框架 ...

  4. wpf 制作播放视频的屏保程序、而且能分屏显示

    这个程序用到了WPF里  “visual_Brush”(主要是为了实现分屏显示) , “UserControl” ,这两个知识点: 在屏保状态下播放指定文件夹下的视频,而且能分屏显示: 把编译好的屏保 ...

  5. 一个仿windows泡泡屏保的实现

    一个仿windows泡泡屏保的实现 有天看到有人在百度知道上问windows 泡泡屏保该怎么用C#做,一时有趣,就做了一个出来,对于其中几个要点总结如下: 一,屏保程序的制作要求 屏保程序的扩展名是. ...

  6. Tkinter 项目-屏保

    参考教程,以及网上资料,针对小白更好理解 关于tkinter的屏保涉及的知识点和思想 项目分析: 屏保启动方式:手动,自动 敲击键盘或者移动鼠标后,或者其他引发事件,则停止 如果屏保是一幅画的话,则没 ...

  7. 【小梅哥FPGA进阶教程】第十四章 TFT屏显示图片

    十四.TFT屏显示图片 本文由杭电网友曾凯峰贡献,特此感谢 学习了小梅哥的TFT显示屏驱动设计后,想着在此基础上通过TFT屏显示一张图片,有了这个想法就开始动工了.首先想到是利用FPGA内部ROM存储 ...

  8. 重新想象 Windows 8.1 Store Apps (92) - 其他新特性: CoreDispatcher, 日历, 自定义锁屏系列图片

    [源码下载] 重新想象 Windows 8.1 Store Apps (92) - 其他新特性: CoreDispatcher, 日历, 自定义锁屏系列图片 作者:webabcd 介绍重新想象 Win ...

  9. 星际SC地图制作中生成随机位置,也包括所有需要随机的效果

    星际SC地图制作中生成随机位置,也包括所有需要随机的效果 利用单位 kakaru T 开头那个, kakaru是随机变化位置 注意kakaru的放置位置和占用格子大小,kakaru周围放上LOCATI ...

随机推荐

  1. GIT入门笔记(7)- 修改文件并向版本库提交

    1.修改文件vi readme.txt git status 发现被修改的文件列表git diff readme.txt 2.git add readme.txt git status  --注意gi ...

  2. python/MySQL(索引、执行计划、BDA、分页)

    ---恢复内容开始--- python/MySQL(索引.执行计划.BDA.分页) MySQL索引: 所谓索引的就是具有(约束和加速查找的一种方式)   创建索引的缺点是对数据进行(修改.更新.删除) ...

  3. Selenium+Chrome/phantomJS模拟浏览器爬取淘宝商品信息

    #使用selenium+Carome/phantomJS模拟浏览器爬取淘宝商品信息 # 思路: # 第一步:利用selenium驱动浏览器,搜索商品信息,得到商品列表 # 第二步:分析商品页数,驱动浏 ...

  4. jvm学习记录-对象的创建、对象的内存布局、对象的访问定位

    简述 今天继续写<深入理解java虚拟机>的对象创建的理解.这次和上次隔的时间有些长,是因为有些东西确实不好理解,就查阅各种资料,然后弄明白了才来做记录. (此文中所阐述的内容都是以Hot ...

  5. MySQL 5.7 基于复制线程SQL_Thread加快恢复的尝试

    1. MySQL 数据恢复常用办法 MySQL恢复的方法一般有三种: 1. 官方推荐的基于全备+binlog , 通常做法是先恢复最近一次的全备,然后通过mysqlbiinlog --start-po ...

  6. thinkphp3.2v

    1.thinphp环境搭建 一.将thinkphp文件拿出来,对我们有用的是cof和library,其他对开发都没有作用. 在thinkphp/library/think文件夹中几个重要的文件 1.A ...

  7. [LeetCode] Number of Distinct Islands 不同岛屿的个数

    Given a non-empty 2D array grid of 0's and 1's, an island is a group of 1's (representing land) conn ...

  8. [LeetCode] Replace Words 替换单词

    In English, we have a concept called root, which can be followed by some other words to form another ...

  9. [LeetCode] Minimum Index Sum of Two Lists 两个表单的最小坐标和

    Suppose Andy and Doris want to choose a restaurant for dinner, and they both have a list of favorite ...

  10. Scriplet的三种代码

    Jsp中注释分为显示注释和隐式注释, 显示注释 -- 可以通过查看源代码看到 <!-- 第一种注释 -->  隐式注释 --  源代码中看不到 <%--jsp注释---%> & ...