csharp 画一个棋盘 鼠标点击哪个方格颜色变红
时间: 2024-03-13 19:42:19 浏览: 70
商业编程-源码-Csharp实例26 改变窗体颜色.zip
可以使用C#中的WinForms来实现一个简单的棋盘,然后通过鼠标点击事件来实现点击方格变色。示例代码如下:
```csharp
using System;
using System.Drawing;
using System.Windows.Forms;
class Program : Form
{
private int size = 8; // 棋盘大小
private int cellSize = 50; // 方格大小
private bool[,] board; // 棋盘状态
public Program()
{
// 初始化棋盘状态
board = new bool[size, size];
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
board[i, j] = false;
}
}
// 设置窗口大小
this.ClientSize = new Size(size * cellSize, size * cellSize);
// 添加鼠标点击事件
this.MouseClick += new MouseEventHandler(MouseClickHandle);
}
private void MouseClickHandle(object sender, MouseEventArgs e)
{
// 计算点击的方格位置
int x = e.X / cellSize;
int y = e.Y / cellSize;
// 修改棋盘状态
board[x, y] = !board[x, y];
// 重绘窗口
this.Invalidate();
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
// 绘制棋盘
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
Brush brush = board[i, j] ? Brushes.Red : Brushes.White;
e.Graphics.FillRectangle(brush, i * cellSize, j * cellSize, cellSize, cellSize);
}
}
}
static void Main(string[] args)
{
Application.Run(new Program());
}
}
```
其中,创建一个`bool`类型的二维数组来表示棋盘状态,然后在鼠标点击事件中计算出点击的方格位置并修改对应的状态,最后通过重绘窗口来实现方格颜色变化。可以根据具体需求修改代码来实现更复杂的棋盘效果。
阅读全文