首页 > 编程语言 >C# 倒计时工具

C# 倒计时工具

时间:2022-10-11 11:34:58浏览次数:55  
标签:listView1 SubItems C# Text private 倒计时 url Add 工具


最近一个朋友在玩一个网络游戏,游戏里有10多个小头目,小头目死后每10分钟刷新一次。有好多玩家抢着打怪,谁第一次有伤害,boss死后物品归谁,朋友苦于计算不到小头目boss准备刷新的时间。总是抢不赢别人。想由我帮他弄个多点计算倒计的时间软件。我无聊觉可行,说干就干。

软件界面由:2个按钮(添加、删除)、一个listView,一个pictureBox,一个timer时钟组成。

C# 倒计时工具_数据库

Dotnet工控

专注分享DotNET编程经验,挖掘程序员优秀的学习资源。

7篇原创内容

公众号

C# 倒计时工具_java_02


  1. 启动时需设计listView列: 只能选择整行需设计listView1.FullRowSelect为True,设计timer为计算倒计时,以秒为单位。
    private void Form1_Load(object sender, EventArgs e)
{
comboBox1.SelectedIndex = 0;
listView1.Columns.Add("倒计时/秒",80,HorizontalAlignment.Left);
listView1.Columns.Add("定时间");
listView1.Columns.Add("图片地址", 100, HorizontalAlignment.Left);
listView1.FullRowSelect = true;//只能选一行
timer1.Interval = 1000;
timer1.Start();
}

2. 添加按钮,载图并且保存图片,方便下次查看。

 private void button1_Click(object sender, EventArgs e)
{
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;//图片拉升或缩小,适应picture控件
string url;保存图片地址
pictureBox1.Image = GetScreenCapture(out url); //用方法载图
ListViewItem listViewItem = new ListViewItem();
string timeritem = System.Text.RegularExpressions.Regex.Replace(comboBox1.Text, @"[^0-9]+", ""); //求数字
listViewItem.Text = (int.Parse(timeritem)*60).ToString();
listViewItem.SubItems.Add($"{comboBox1.Text}");
listViewItem.SubItems.Add(url);
listView1.Items.Add(listViewItem);
}
private Bitmap GetScreenCapture(out string url)
{
Rectangle tScreenRect = new Rectangle(0, 0, Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Bitmap tSrcBmp = new Bitmap(tScreenRect.Width, tScreenRect.Height); // 用于屏幕原始图片保存
Graphics gp = Graphics.FromImage(tSrcBmp);
gp.CopyFromScreen(0, 0, 0, 0, tScreenRect.Size);
gp.DrawImage(tSrcBmp, 0, 0, tScreenRect, GraphicsUnit.Pixel);
Random ran = new Random();
url = @$"temp\{ran.Next(1, 999)}.jpg";
tSrcBmp.Save(url);
return tSrcBmp;
}

3.需按秒更新倒计时,在timer时钟里更新全部的倒计时,

   private void timer1_Tick(object sender, EventArgs e)
{
this.listView1.BeginUpdate(); //数据更新,UI暂时挂起,直到EndUpdate绘制控件,可以有效避免闪烁并大大提高加载速度
foreach (ListViewItem item in listView1.Items)
{
item.SubItems[0].Text = (int.Parse(item.SubItems[0].Text) - 1).ToString();
}
this.listView1.EndUpdate(); //结束数据处理,UI界面一次性绘制。
}
/// <summary>
/// 双击显示图片
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void listView1_MouseDoubleClick(object sender, MouseEventArgs e)
{
pictureBox1.ImageLocation = listView1.SelectedItems[0].SubItems[2].Text;
}
/// <summary>
/// 删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
File.Delete(listView1.SelectedItems[0].SubItems[2].Text);
listView1.SelectedItems[0].Remove();
}

4.效果图:朋友很满意,能计算到小头目秒刷新。快到倒计时为10秒时就赶快到那要刷新的地点等小头目。总是能抢到小头目

C# 倒计时工具_数据库_03

5.事后又找我能否帮他弄个自动打怪抢头目的脚本,我怕了他了

C# 倒计时工具_保存图片_04

,直接跟他说不会。

标签:listView1,SubItems,C#,Text,private,倒计时,url,Add,工具
From: https://blog.51cto.com/biyusr/5745975

相关文章

  • AspNetCore中 使用 Grpc 简单Demo
    为什么要用Grpc跨语言进行,调用服务,获取跨服务器调用等目前我的需要使用我的抓取端是go写的查询端用Net6写的导致很多时候我需要把一些临时数据写入到Redis在两......
  • WGCLOUD服务端网页初始登录密码是什么
    WGCLOUD的管理端页面,初始登录用户名/密码:admin/111111......
  • 深入理解并发编程同步工具类
    大家好,我是陶朱公Boy。今天跟大家分享一个并发编程领域中的一个知识点——同步工具类。我将结合一个真实线上案例作为背景来展开讲解这一知识点。给大家讲清楚什么是同步......
  • WCH沁恒 CH32V203F6P6踩坑
    目前公司需要学习这个芯片使用IDE为:MounRiverStudio  第一坑:芯片型号  这是官方给的历程,但实际上下载时,芯片选型却选的是   需要修改为V20X还有一件事......
  • LcdTools如何自定义读写PX01 SSD2828寄存器
    LcdToos打开相应的工程文件,连接PX01并开启点亮屏使LcdTools开关处于开启状态。切到“测试设置”栏,在“Bridge控制”栏,在“Addr”处写需要操作的寄存器地址值(十六......
  • tensorrt中workspace_size的理解
    首先单位是字节,比如builder.max_workspace_size=1<<30就是2^30bytes即1GB。它的作用是给出模型中任一层能使用的内存上限。运行时,每一层需要多少内存系统分配......
  • Leetcode 33 -- 二分查找&&归约思想
    题目描述搜索旋转排序数组思路思路来源一个清晰的思路:这道题和平常二分法查找的不同就在于,把一个有序递增的数组分成了,两个递增的数组,我们需要做的就是判断这个......
  • tcpdump 简单使用
    语法解析tcpdump-vvnn-c10-s0-ieth0“tcpdump原语表达式”-vvnn:显示ip地址而不是主机名-c:抓包次数-s:抓包大小,大于这个值的包内容会被截断,0表示不限制大小,显示全......
  • docker常用命令
    启动docker服务:systemctlstartdocker停止docker服务:systemctlstopdocker重启docker服务:systemctlrestartdocker查看docker服务状态:systemctlstatusdocker......
  • 记录一次oracle数据迁移
    背景:要把系统再部署一套,现在系统考虑用原来系统的(基础)数据。所以需要把原来的数据导出,放到新系统数据库中。 操作:--[1.1]登陆原系统sqlplus/assysdba--[1.2]查......