- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
[C#] Chia sẻ source code Orange Rain in Winform
Xin chào các bạn, bài viết hôm nay mình chia sẻ các bạn source code tạo Orange Rain trên Background Winform C#, các bạn có thể tìm thêm hiệu ứng tuyết rơi ở bài đọc cũ.
[C#] Source code Orange Rain in winform
Giao diện demo ứng dụng:
Ở bài viết này, chúng ta sẻ sử dụng 1 timer, các bạn có thể chỉnh tốc độ rơi và chiều dài của Rain.
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 PurpleRain
{
public partial class Form1 : Form
{
List<Drop> rain = new List<Drop>(); // keeps all drops in one place
Random rnd = new Random(); // for generating random numbers
public Form1()
{
InitializeComponent();
for (int i = 0; i < 100; i++) // creates 100 drops at random position and with random speed
rain.Add(CreateRandomDrop());
}
private Drop CreateRandomDrop()
{
return new Drop // create drop with random position and speed
{
Position = new PointF(rnd.Next(this.Width), rnd.Next(this.Height)),
YSpeed = (float)rnd.NextDouble() * 3 + 5 // 2..5
};
}
private void UpdateRain() // changes Y position for each drop (falling), also checks if a drop is outside Main form, if yes, resets position to 0
{
foreach (var drop in rain)
{
drop.Fall();
if (drop.Position.Y > this.Height)
drop.Position.Y = 0;
}
}
private void RenderRain()
{
using (var grp = this.CreateGraphics()) // using will call IDisposable.Dispose
{
grp.Clear(Color.DarkOrange);
foreach (var drop in rain)
grp.DrawLine(Pens.White, drop.Position, new PointF(drop.Position.X , drop.Position.Y + 5));
}
}
private void timer1_Tick(object sender, EventArgs e)
{
UpdateRain();
RenderRain();
}
class Drop
{
public PointF Position;
public float YSpeed;
public void Fall() => Position.Y += YSpeed;
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
Thanks for watching!