Visual_Basic 板


LINE

※ 引述《felixlin (享受痛苦)》之铭言: : 现在有 form A 和 form B : 我想要按下A中的buttonA後 : 其效果等於B中的buttonB : ex : (in form_A) : public sub button_A.Click(byval sender .... byval e ....) ..... : form_B.buttonB.click(sender,e) : end sub : 以上并没有触发buttonB.click : 不知道有没有先进能帮我解决这问题 : thank you :P 唔,好难做... 我找到一个方法是: 先看被动方 Form2, 写成如下面的程式 Public Class Form2 Public Event b1(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles Button1.Click, Me.b1 Console.WriteLine("hey") Me.Button1.BackColor = Color.Red End Sub Public Sub b1_raiser(ByVal sender As System.Object, _ ByVal e As System.EventArgs) RaiseEvent b1(sender, e) End Sub End Class Button1_Click是private, 於是额外设计一个event叫b1, 由b1_raiser触发事件, 并由Button1_Click处理b1事件(见黄色部份). 注意事件b1与触发器b1_raiser的参数,都与Button1_Click一样,才能让 一个Button1_Click既处理Button1.Click,也处理b1. 於是,Form2对外有个b1事件,并有b1_raiser程序为触发器. 接下来,轮到Form1了,Form1要知道怎麽触发Form2.b1事件. 触发事件必须把 sender 跟 e 参数都带过去,因 Form1.Button1 与 Form2.Button1 参数相同,直接带过去即可. Public Class Form1 'Dim WithEvents f2 As New Form2 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles Button1.Click 'f2.b1_raiser(sender, e) My.Forms.Form2.b1_raiser(sender, e) End Sub End Class 注意灰色注解处,虽然可以叫出 Form2.Button1 的工作, 但由前面 Form2.Button1 一行涂底色为红色的程式,可以看出 在此若使用WithEvents,一点鸟用都没有. 虽然可以做出相同的动作,但由f2触发Form2.b1事件是借用另一个实体. 而透过 My.Froms.Form2.b1_raiser 触发 Form2.b1 看起来显然漂亮多了. 你所要写的程式大约是如此: Form1_Button1先做一些自己的工作,然後叫起 Form2 的 Button1_Click 所处理的 事件; Form2_Button1也先做一些自己的工作,然後叫起 Form1 的 Button1_Click 所处理的事件. 不过以上流程看起来是递回的,还要再透过参数 sender 判断按的是哪个按钮, 避免反覆进行工作. 参考资料: WithEvents范例码 http://msdn.microsoft.com/en-us/library/stf7ebaz(VS.80).aspx --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.112.227.70 ※ 编辑: yauhh 来自: 59.112.227.70 (05/25 00:55)







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灯, 水草

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

TOP