- [C#] Hướng dẫn giải nén file *.rar với tiến trình progress bar winform
- [C#] Chia sẻ source code make Crazy Error Message Effect Bomb Windows
- [C#] Lập trình ứng dụng theo mô hình MVP Model-View-Presenter Pattern Winform
- [C#] Giới thiệu và những thứ hay ho từ thư viện System.Reactive của Microsoft
- [C#] Hướng dẫn tạo ứng dụng Chat với GPT sử dụng Open AI API
- [DEVEXPRESS] Tạo month picker trên DateEdit Winform C#
- [DATABASE] Cách sử dụng và lưu ý khi sử dụng khóa ngoại (Foreign Key) trong Sqlserver
- [C#] Garbage Collector (GC) là gì? Cách giải phóng bộ nhớ trên ứng dụng Winform khi các đối tượng không còn sử dụng
- [C#] Cách tính độ tương phản màu sắc Contrast Color mà con người có thể nhìn thấy được
- [C#] Hướng dẫn mã hóa mật khẩu tài khoản ứng dụng đúng chuẩn Men
- [C#] Sử dụng Open AI Chat GPT viết ứng dụng Count down timer có hiệu ứng trên winform
- [DATABASE] Chia sẻ dữ liệu Pantone Color sql và json api
- [SQLSERVER] Tạo mã sản phẩm tự động như: SP0001, SP0002, SP0003... sử dụng Trigger
- [C#] Hướng dẫn kiểm tra phiên bản NET Framework cài đặt ở máy tính
- [C#] Hướng dẫn đọc file excel đơn giản sử dụng thư viện Epplus
- [C#] ConcurrentBag là gì và cách sử dụng nó trong lập trình bất đồng bộ
- [C#] AutoResetEvent là gì và cách sử dụng
- [DEVEXPRESS] Chia sẻ source code cách tạo biểu đồ sơ đồ tổ chức công ty Org Chart trên Winform C#
- [C#] Hướng dẫn tạo Auto Number trên Datagridview winform
- [DATABASE] Hướng dẫn tạo Procedure String Split in Mysql
[C#] Sử dụng Open AI Chat GPT viết ứng dụng Count down timer có hiệu ứng trên winform
Xin chào các bạn, bài viết hôm nay mình hướng dẫn các bạn cách sử dụng Open AI Chat GPT hỗ trợ trong việc lập trình C#, winform.
Ở bài viết này mình yêu cầu nó viết cho mình một ứng dụng count down timer với 60s.
Vậy count down timer là gì?
Countdown timer là một công cụ rất hữu ích trong lập trình ứng dụng C# để đếm ngược thời gian từ một giá trị bắt đầu cho đến khi đạt được một giá trị kết thúc nhất định.
Countdown timer có thể được sử dụng trong nhiều tình huống khác nhau, từ đếm ngược thời gian để kích hoạt một tác vụ đến thông báo người dùng về thời gian còn lại trước khi một sự kiện quan trọng diễn ra.
Trong ứng dụng C#, để sử dụng countdown timer, chúng ta có thể sử dụng lớp Timer có sẵn trong namespace System.Timers.
Để bắt đầu sử dụng Timer, chúng ta cần tạo một thể hiện của lớp này bằng cách sử dụng constructor mặc định, sau đó thiết lập các thuộc tính của Timer như Interval, Enabled, và event handler để xử lý các sự kiện.
Dưới đây là một ví dụ về cách sử dụng countdown timer trong ứng dụng C# để đếm ngược từ 60 giây cho đến khi đạt được giá trị kết thúc 0 giây:
Video hướng dẫn các bước thực hiện Step by Step:
Full source code C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TestCountDownTimer
{
public partial class Form1 : Form
{
private DateTime startTime;
private Timer timer2;
public Form1()
{
InitializeComponent();
pictureBox1.Paint += PictureBox1_Paint;
}
private void PictureBox1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
if (timer2.Enabled == false)
{
// Draw the border of the circle
using (Pen pen = new Pen(Color.Red, 20))
{
g.DrawEllipse(pen, 10, 10, 230, 230);
}
}
else {
// Draw the border of the circle
using (Pen pen = new Pen(Color.White, 20))
{
g.DrawEllipse(pen, 10, 10, 230, 230);
}
}
// Draw the countdown arc
int remainingSeconds = 60 - (int)(DateTime.Now - startTime).TotalSeconds;
if (remainingSeconds < 0)
{
remainingSeconds = 0;
}
float angle = (float)remainingSeconds / 60 * 360;
using (Pen pen = new Pen(Color.Red, 20))
{
g.DrawArc(pen, 10, 10, 230, 230, -90, angle);
}
// Draw the remaining time in the center of the circle
string remainingTime = remainingSeconds.ToString();
using (Font font = new Font("Tahoma", 48, FontStyle.Bold))
{
SizeF size = g.MeasureString(remainingTime, font);
PointF point = new PointF((250 - size.Width) / 2, (250 - size.Height) / 2);
Font font2 = new Font("Tahoma", 18);
SizeF size2 = g.MeasureString("SECONDS", font2);
PointF point2 = new PointF((250 - size2.Width) / 2 , (250 - size2.Height) / 2 + 45) ;
using (Brush brush = new SolidBrush(Color.Black))
{
g.DrawString(remainingTime, font, brush, point);
g.DrawString("SECONDS", font2, brush, point2);
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
timer2 = new Timer();
timer2.Interval = 1000;
timer2.Tick += Timer2_Tick;
// Set the PictureBox size to 250 x 250 pixels and set its BackColor to white
pictureBox1.Size = new Size(250, 250);
pictureBox1.BackColor = SystemColors.Control;
}
private void Timer2_Tick(object sender, EventArgs e)
{
// Calculate the remaining seconds
int remainingSeconds = 60 - (int)(DateTime.Now - startTime).TotalSeconds;
// Redraw the PictureBox
pictureBox1.Invalidate();
if (remainingSeconds < 0)
{
remainingSeconds = 0;
timer2.Stop();
}
}
private void button1_Click(object sender, EventArgs e)
{
// Set the start time to the current time
startTime = DateTime.Now;
// Start the timer
timer2.Start();
}
}
}
Thanks for watching!