作者andy910389 (*微凉的你*)
看板C_Sharp
标题[问题] 关於CreatGraphics
时间Fri Mar 26 13:32:08 2010
最近开始学C#视窗程设
然後一开始学道画线都是在
private void Form1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawLine(myPen, 0, 0, 20,30);
}
这样的写法就可以画出一条线
可是现在进入比较进阶的阶段 是要根据滑鼠的点 一个接一个连起来
但是关於下面红色的那个部分..他没有注解...我实在看不太懂
去MSDN查也只说 建立控制项的 Graphics
为什麽要先建立阿?那以前我只单纯在介面上画出一条线时 就不用先建立这个..
想问this.CreateGraphics()他的功用在哪呀??
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
Graphics G = this.CreateGraphics();
if (e.Button == MouseButtons.Left) // 滑鼠左键
{
if (points.Count == 0) // 第一个点 画出 小椭圆形
G.DrawEllipse(Pens.Black, e.Location.X - 3, e.Location.Y
- 3, 6, 6);
else // 第二个点 以後 就和上一个点 相连
G.DrawLine(Pens.Black, points[points.Count - 1],
e.Location);
points.Add(e.Location); // 把点的资料 加到 动态阵列中
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.60.253.80
※ 编辑: andy910389 来自: 61.60.253.80 (03/26 13:32)
※ 编辑: andy910389 来自: 61.60.253.80 (03/26 13:33)
1F:推 F23ko:把视窗当成画布 03/26 13:38
2F:→ F23ko:我一开始学就是第二种用法,倒是没看过第一种 03/26 13:39
3F:→ andy910389:所以只要在视窗上画东西的都要先建立那个罗~? 03/26 13:44
4F:→ andy910389:不过还是想知道两者的差别在哪..因为第一种也可画线说 03/26 13:46
※ 编辑: andy910389 来自: 61.60.253.80 (03/26 13:48)
5F:→ james732:我比较倾向第一种写法 全部都在 Paint_event 做好 03/26 13:51
6F:→ james732:第二种方法会有视窗无法自动重绘的问题 03/26 13:52
7F:→ james732:最明显的差异 原po把视窗最小化再恢复就会看得出来了 03/26 13:52
8F:→ andy910389:最小化再恢复没什麽变耶~看code似乎没有重绘机制 03/26 13:55
9F:→ andy910389:但我记得之前的范例有每做一次控制就重绘一次 03/26 13:56
10F:→ andy910389:那种应该就会出现不同了吧我想...谢谢楼上各位大大:D 03/26 13:56
11F:→ andy910389:我刚试了一下别的重绘范例 发现第二种会一闪一闪的 03/26 14:04
12F:→ andy910389:而用第一种好像就不会~所以要看有没有重绘机制吧我想 03/26 14:05
13F:推 F23ko:唔.... 第二种 我也遇到一闪一闪的问题.... 03/26 14:51