winform 有GDI+画表格
来源:互联网 发布:淘宝上的灯具质量好吗 编辑:程序博客网 时间:2024/06/11 05:04
今天,看到群里有一位朋友正在做一个连连看的小游戏需要用到,在窗体上画表格。闲来没事也想回忆一下GDI+的知识,就是这做了一下,反正也不难先在把demo拿出来与大家分享(高手无喷,行列数可以调):
学C#也有一段时间了,最近在写一个项目时需要在用户单击窗体的关闭按钮时弹出 确定对话框的功能。自己在网上找了很多方法都不太理想。如果,使用窗体的FormClosing事件,在用户单击取消后窗体照样会被关闭!所以,这个方法显然不是很好。最后使用windows 消息机制的方法达到了设计要求。下面我将核心代码发上来,高手可以走过:
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
this.drawWang(5,5);
}
Point[] sP; //上边界
Point[] xP; //下边界
Point[] zP; //左边界
Point[] yP; //右边界
/// <summary>
/// 绘制表格的方法
/// </summary>
/// <param name="xc">行的数量</param>
/// <param name="yc">列的数量</param>
private void drawWang(int xc, int yc)
{
int W = this.Width;
int H = this.Height;
Graphics g = this.CreateGraphics();
Rectangle r = new Rectangle(10, 10, W - 30, H - 60);
g.DrawRectangle(new Pen(Brushes.Red, 2.0f), r);
int recCountX = xc;
int recCountY = yc;
Point[] sP = new Point[recCountX]; //Up
Point[] xP = new Point[recCountX]; //down
Point[] zP = new Point[recCountY]; //left
Point[] yP = new Point[recCountY]; //regit
int cW = (int)r.Width / recCountX; //每个格子的长
int cH = (int)r.Height / recCountY; //每个格子的宽
for (int i = 0; i < recCountX - 1; i++)
{
int pX = r.X + cW + cW * i; //计算边上点的坐标的方法
Point p = new Point(pX, r.Y);
sP[i] = p;
}
for (int i = 0; i < recCountX - 1; i++)
{
int pX = r.X + cW + cW * i;
Point p = new Point(pX, r.Y + r.Height);
xP[i] = p;
}
for (int i = 0; i < recCountY - 1; i++)
{
int pY = r.Y + cH + cH * i;
Point p = new Point(r.X, pY);
zP[i] = p;
}
for (int i = 0; i < recCountY - 1; i++)
{
int pY = r.Y + cH + cH * i;
Point p = new Point(r.X + r.Width, pY);
yP[i] = p;
}
for (int i = 0; i < recCountX - 1; i++)
{
g.DrawLine(new Pen(Brushes.Red, 2.0f), sP[i], xP[i]);
}
for (int i = 0; i < recCountY - 1; i++)
{
g.DrawLine(new Pen(Brushes.Red, 2.0f), zP[i], yP[i]);
}
g.Dispose();
}
private void Form1_SizeChanged(object sender, EventArgs e)
{
this.Refresh(); //改变窗体大小时刷新
}
- winform 有GDI+画表格
- C# WinForm GDI
- GDI 编程画折线&winform拖动圆点
- C# WinForm开发系列 - GDI+
- winform 打印datagridview表格
- “GDI“ 和“GDI+”有区别吗?
- “GDI“ 和“GDI+”有区别吗?
- C# GDI+ Winform简单绘图(概论)
- WinForm GDI编程:Graphics画布类
- winform中导入excel表格
- DEBUG_NEW 与GDI+ 有冲突
- 有textbox的表格
- 已有表格排序
- 表格-表头有斜线
- winform excel 合并表格問題
- winForm表格数据生成excel文件
- winform操作excel表格的简单应用
- winform DataGridView 导出到Excel表格
- 几种任务调度的 Java 实现方法与比较
- 关于eclipse的一些使用技巧
- android 本地化和国际化
- Ajax交互方法(一)
- ExecuteReader方法中CommandBehavior.CloseConnection的一些注意事项
- winform 有GDI+画表格
- 静态成员变量的一个测试
- IE无法屏蔽的弹出页面的方法!Response.Redirect 打开新窗口的两种方法
- [C#] 温故而知新:Stream篇(—)
- wep wpa wpa2
- 正则表达式验证IP地址
- RTMP协议发送H.264编码及AAC编码的音视频,实现摄像头直播
- Linux源码与Tarball套件管理程序
- OpenMax系统的结构(2)