基于C#制作一个桌面宠物

此文主要基于C#制作一个桌面宠物,可自定义宠物素材图片及打开外部exe的快捷菜单。

    • 实现流程
      • 1.1、创建项目
      • 1.2、准备素材
      • 1.3、控件设置
        • (1)PictureBox控件
        • (2)timer控件
        • (3)contextMenuStrip控件
      • 1.4、生成为exe程序
      • 1.5、设置开机自启
    • 代码块

实现流程

1.1、创建项目

  1. 打开Visual Studio,右侧选择创建新项目。

在这里插入图片描述

  1. 搜索框输入winform,选择windows窗体应用,填写对应的保存路径点击下一步,创建成功后如下图。

在这里插入图片描述
在这里插入图片描述

  1. 将Form1的FormBorderStyle属性设置为None,这时窗体效果则由下图1变成了图2的样子。

基于C#制作一个桌面宠物_第1张图片

基于C#制作一个桌面宠物_第2张图片

1.2、准备素材

这里简单放了几张罗小黑的gif素材,大家可以根据自己的喜好准备。

基于C#制作一个桌面宠物_第3张图片 基于C#制作一个桌面宠物_第4张图片 基于C#制作一个桌面宠物_第5张图片

1.3、控件设置

(1)PictureBox控件

在工具箱搜索PictureBox控件,将其拖拽到窗体上。

基于C#制作一个桌面宠物_第6张图片

给PictureBox设置一张默认背景图,并通过Size属性设置其宽高。

基于C#制作一个桌面宠物_第7张图片

(2)timer控件

在工具箱搜索Timer控件,将其拖拽到窗体上。
Timer控件是一种通过引发Timer事件,可以有规律地隔一段时间执行一次代码的控件,这里主要是用这个控件实现素材切换的效果。

基于C#制作一个桌面宠物_第8张图片

在窗体代码顶部定义数组,存放素材数据。

基于C#制作一个桌面宠物_第9张图片

public Bitmap[] Resource = {
            Properties.Resources.罗小黑0,
            Properties.Resources.罗小黑1,
            Properties.Resources.罗小黑2
        };

双击拖拽进来的timer控件,定义随机数,设置控件背景图,这里随机数不要大于你的素材的数量,不然会有越界的情况。

在这里插入图片描述
在这里插入图片描述

private void timer_Tick(object sender, EventArgs e)
{
      int random = new Random().Next(0, 2);
      picBox.Image = (Image)Properties.Resources.ResourceManager.GetObject($"罗小黑{random}");
  }

回到窗体上,右击timer控件,设置Interval属性值,控制切换素材的频率

基于C#制作一个桌面宠物_第10张图片

(3)contextMenuStrip控件

在工具箱搜索contextMenuStrip,将其拖拽到窗体上,ContextMenuStrip实际就是上下文菜单,就是右键单击某个窗体或者控件后出来的菜单。

基于C#制作一个桌面宠物_第11张图片

单击选中pictureBox,在其contextMenuStrip属性中选择刚才所添加的控件

基于C#制作一个桌面宠物_第12张图片

单击contextMenuStrip,在上方文本框处配置菜单

基于C#制作一个桌面宠物_第13张图片

双击菜单进去,即可配置点击时对应的响应事件,这里先简单配置下是否能够打开外部exe程序

基于C#制作一个桌面宠物_第14张图片

Process m_Process = null;
m_Process = new Process();
m_Process.StartInfo.FileName = @"这里放你的外部exe程序路径";
m_Process.Start();

1.4、生成为exe程序

右击解决方案,点击生成

基于C#制作一个桌面宠物_第15张图片

左下角显示生成成功后,在文件夹中打开项目

基于C#制作一个桌面宠物_第16张图片

基于C#制作一个桌面宠物_第17张图片

从bin文件夹到Debug文件夹,单击后缀为exe的应用程序桌面宠物就呈现出来了。

基于C#制作一个桌面宠物_第18张图片

1.5、设置开机自启

  1. 复制该应用程序的快捷程序。
  2. win + r 键打开运行,在文本框输入 shell:startup,回车确认。
  3. 将复制的程序粘贴进来就搞定了。

代码块

public Bitmap[] Resource = {
	Properties.Resources.罗小黑0,
	Properties.Resources.罗小黑1,
	Properties.Resources.罗小黑2
};
private Boolean IsMouseDown = false;
private Point MousePoint;
private Boolean hide = false;
public Box()
{
InitializeComponent();
InitMenu();
}
private void timer_Tick(object sender, EventArgs e)
{
	int random = new Random().Next(0, 14);
	"你的puctureBox控件名".Image = (Image)Properties.Resources.ResourceManager.GetObject($"罗小黑{random}");
}
private void Lxh_MouseMove(object sender, MouseEventArgs e)
{
    if (IsMouseDown)
    {
        Point snap = Cursor.Position;
        this.Location = new Point(Location.X + (snap.X - MousePoint.X), Location.Y + (snap.Y - MousePoint.Y));
        MousePoint = Cursor.Position;
    }
}
private void Lxh_MouseDown(object sender, MouseEventArgs e)
{
    IsMouseDown = true;
    MousePoint = Cursor.Position;
}

private void Lxh_MouseUp(object sender, MouseEventArgs e)
{
    IsMouseDown = false;
}
 /// 
 /// 退出程序
 /// 
 /// 
 /// 
 private void Exists_Click(object sender, EventArgs e)
 {
     System.Environment.Exit(0);
 }
 /// 
 /// 显/隐
 /// 
 /// 
 /// 
 private void Display(object sender, EventArgs e)
 {
     if (hide)
     {
         this.Show();
     }
     else
     {
         this.Hide();
     }
     hide = !hide;
 }
 /// 
 /// 文件资源管理器
 /// 
 /// 
 /// 
 private void Explorer(object sender, EventArgs e)
 {
     Helper.StartProcess("Explorer.exe");
 }
 private void toolStripMenuItem1_Click(object sender, EventArgs e)
 {
     Process m_Process = null;
     m_Process = new Process();
     m_Process.StartInfo.FileName = @"这里放外部exe程序路径";
     m_Process.Start();
 }

你可能感兴趣的:(C#,宠物)