C_Sharp 板


LINE

我看书上的范例: using ~~~(省) namespace WindowsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Paint(object sender, PaintEventArgs e) { GraphicsPath gp = new GraphicsPath(); // GraphicsPath物件 Point p1 = new Point(10, 20); // 直线的两端 Point p2 = new Point(100, 20); gp.AddLine(p1, p2); // 将 直线 加入到 GraphicsPath物件 gp.CloseFigure(); // 先封闭 第一条直线 Point p3 = new Point(10, 50); // 直线的两端 Point p4 = new Point(100, 50); gp.AddLine(p3, p4); // 将第二条直线 加入到 GraphicsPath物件 e.Graphics.DrawPath(Pens.Black, gp); // 绘出GraphicsPath物件 } } } 我很好奇why我们都没有call 画图的那个method 就是arguments中有 (object sender, PaintEventArgs e) 那行的程式 他就会自动执行所以可以画图 到底是谁call 那行程式导致可以画图?? 最重要的是... 我也是按照 ********************************************************************* using ~~ 一堆一堆 namespace test001 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void paint_f(object sender, PaintEventArgs e) { GraphicsPath paint = new GraphicsPath(); ........一堆 e.Graphics.DrawCurve(pen, pt); } } } 去做 就不会自动画图 / \ 好几天了 好闷阿 请高手指点 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.155.193
1F:→ SnowyFox:我猜应该是缺了将paint_f方法加到form的Paint事件中 08/23 23:08
2F:→ m13m13m:请问是甚麽意思... 08/23 23:11
3F:→ m13m13m:Form的paint事件指的是? 08/23 23:11
4F:→ SnowyFox:Paint事件会在控制项绘制的时候执行 08/23 23:11
5F:→ SnowyFox:可以查一下Form的Event会比较了解执行时机和次序 08/23 23:12
6F:→ m13m13m:请问是要到TOOLBOX上找一个这种button吗? 08/23 23:14
7F:→ m13m13m:我是直接在Form.cs上打入这些指令,没有多做什麽... 08/23 23:14
8F:→ m13m13m:所以所谓的"控制项"绘制指的是... 08/23 23:15
9F:→ m13m13m:不好意思 我还太菜了 08/23 23:15
10F:→ SnowyFox:方法一:在表单上选取属性/找到Paint方法/选取paint_f 08/23 23:19
11F:→ SnowyFox:方法二:在 Initialize()方法中增加 08/23 23:20
12F:→ m13m13m:请问所谓的菜单是project -> XXX.property吗? 08/23 23:21
13F:→ SnowyFox:Form1.Paint += paint_f(参数); 08/23 23:24
14F:→ m13m13m:加在InitializeComponent() ? 08/23 23:25
15F:→ SnowyFox:没打清楚,是Form1()的InitializeComponent方法之後 08/23 23:28
16F:→ SnowyFox:表单指的是视窗的设计页,选取表单/检视/属性视窗/ 08/23 23:30
17F:→ SnowyFox:属性视窗中的闪电符号会列出表单支援的方法 08/23 23:32
18F:→ m13m13m:n...我试一下 好像有点小问题 不过我找到闪电了 08/23 23:36
19F:→ m13m13m:是指property window 下面的那个吗? 08/23 23:36
20F:→ SnowyFox:是 08/23 23:37
21F:→ m13m13m:所以那个函式不能被呼叫吗? T - T 08/23 23:40
22F:→ m13m13m:另外我的form上面还有load: 把图load进picturebox 08/23 23:41
23F:→ m13m13m:和一个exit. 一把paint那边点选後 就连一开始的载图都不行 08/23 23:42
24F:→ SnowyFox:他是将方法挂在Form的事件上 在事件发生时会执行该段程式 08/23 23:42
25F:→ m13m13m:想必程式是一开始就跑paint那段程式码八xd... 08/23 23:43
26F:→ m13m13m:所以form一出来就开始画画了阿! 08/23 23:43
27F:→ m13m13m:可是我想要把图载入後再到上面画画 不想到form上面画画xd. 08/23 23:44
28F:→ SnowyFox:是的 在你看到视窗跑出来的时候 图就画完了 08/23 23:48
29F:→ m13m13m:那怎麽互动阿?xd....我按button 它画图在form上的美梦... 08/23 23:52
30F:→ m13m13m:先跟您说一百声谢谢! SnowyFox 08/23 23:56
31F:→ SnowyFox:自己建立方法 不使用事件 原程式 Form1_Paint中的程式码 08/24 00:01
32F:→ SnowyFox:复制到自订的方法中 最後的 e.graphics.xxx 替换为 08/24 00:02
33F:→ SnowyFox:Graphics g = this.CreateGraphics(); 08/24 00:03
34F:→ SnowyFox:g.DrawPath(Pens.Black, gp); g.Dispose(); 08/24 00:04
35F:→ SnowyFox:然後你再从按钮的 Click 事件去呼叫这个方法 08/24 00:05
36F:→ SnowyFox:我也是菜鸟 也有很多不会 当做学习吧 呵呵 08/24 00:05
37F:→ m13m13m:我想一下下喔 ... 08/24 00:07
38F:→ m13m13m:ok 其实您说的方法我一开始是类似那样的 但是因为g 是 08/24 00:13
39F:→ m13m13m:Graphics 所以少了一个很重要的method 就是.CloseFigure() 08/24 00:15
40F:→ m13m13m:所以我画的curve和直线 VS非常之鸡婆难以形容 居然给老子 08/24 00:15
41F:→ m13m13m:把他们的尾端连起来....... 08/24 00:16
42F:→ SnowyFox:你可以去MSDN查一下CloseFigure这个方法 根据说明 08/24 00:19
43F:→ SnowyFox:他会将目前画的图形封闭没错 如果不要的话 你可以不呼叫 08/24 00:20
44F:→ SnowyFox:这个方法 08/24 00:20
45F:→ m13m13m:不...是他自己会把我的曲线图s 的尾巴连起来,根据书上指示 08/24 00:24
46F:→ m13m13m:要用这个method 但无奈要用 picturebox.creategraph(); 08/24 00:24
47F:→ m13m13m:就是Graphics paint = plate.CreateGraphics(); 没有 08/24 00:25
48F:→ m13m13m: .closeFigure()... 好谢谢你 我去msdn看看closeFigure. 08/24 00:25
49F:→ SnowyFox:CloseFigure 是 GraphicsPath 的方法 08/24 00:28
50F:→ SnowyFox:Graphics 上面是没有这个方法的 要不要检查一下用的物件 08/24 00:29
51F:→ m13m13m:对阿 没有这个方法所以无法阻止尾巴互连的麻烦事 08/24 00:38
52F:→ SnowyFox:另外 你遇到的问题 我猜可以用把不想要封闭的图形集中到 08/24 00:38
53F:→ SnowyFox:最後 然後最後不要呼叫 CloseFigure 08/24 00:40
54F:→ SnowyFox:呃 你不是有使用 GraphicsPath就是上面程式的 gp 物件吗? 08/24 00:41
55F:→ m13m13m:我不能用graphicspath 只能用Graphics因为那样才能 08/24 00:46
56F:→ m13m13m:GraphicsPath paint= picturebox.CreateGraphics(); 08/24 00:47
57F:→ m13m13m:才能只针对picturebox去做图 所以书上有跟我说甚麽 08/24 00:48
58F:→ m13m13m:先封闭再打开 那是在GraphicsPath的东西 我第一步就无法 08/24 00:48
59F:→ m13m13m:写GraphicsPath paint = plate.CreateGraphics();了 08/24 00:49
60F:→ m13m13m:00:47那行修正为: Graphics paint= picturebox.Create(); 08/24 00:50
61F:→ SnowyFox:基本上Graphics和GraphicsPath应该是没有什麽冲突 就像上 08/24 01:12
62F:→ SnowyFox:面范例的自己new一个就可以使用了 08/24 01:13
63F:→ SnowyFox:只有你在绘制上去的时候需要取得控制项的Graphics物件 08/24 01:14
64F:→ SnowyFox:这个部份以你的需要应该是picturebox.CreateGraphics() 08/24 01:15
65F:→ SnowyFox:来画在你指定的控制项上 08/24 01:16
66F:→ SnowyFox:或是可以考虑使用Graphics物件的DrawXXX方法 08/24 01:24
67F:→ SnowyFox:另外 我不确定你在00:49的语句是否只是误打 08/24 01:25
68F:→ SnowyFox:Graphics和GraphicsPath是不同的物件 08/24 01:26
69F:→ SnowyFox:picturebox.CreateGraphics取回的是Graphics物件 08/24 01:27
70F:→ SnowyFox:所以无法指定给GraphicsPath物件,要使用的话,要new一个 08/24 01:28
71F:→ SnowyFox:GraphicsPath物件来使用 08/24 01:28
72F:→ m13m13m:你说的没错,你好认真 先在谢谢你 我再想想看解决方法xd... 08/24 01:36
73F:→ m13m13m:解决了 唉...结果跟这些都没关系 是我忘记把变数重新clear 08/24 02:35
74F:→ m13m13m:明明是犯过n次的错误 但却又浪费了3/4h 真是tmd T - T 08/24 02:36
75F:→ m13m13m:不过要十分感谢SnowyFox 我又学到了一些新东西 谢谢你! 08/24 02:36







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP