Redian新闻
>
vb.net event handler 请教!如何raise一个event,所有form中任何一个on top的可以handle?
avatar
vb.net event handler 请教!如何raise一个event,所有form中任何一个on top的可以handle?# DotNet - 窗口里的风景
wh
1
【 以下文字转载自 paladin 讨论区 】
发信人: JGG (六月的茉莉梦), 信区: paladin
标 题: 评云海玉弓缘:烟消云散话胜男(转载)
发信站: BBS 未名空间站 (Sun Jan 25 23:48:14 2009)
烟消云散话胜男
希腊史诗《伊里亚特》记述赫克托和亚契力斯绕城大战这一段中,描写众天神拿了
天平来秤这两个英雄的命运,小时候我读到赫克托这一端沉了下去,天神们决定他必须
战败而死,感到非常难过,“那不公平!那不公平!”过了许多岁月,当我读到满清的
皇太极怎样设反间计、崇祯和他的大臣们怎样商量要不要杀死袁崇焕,同样有剧烈的凄
怆之感。
——《袁崇焕评传》
一直很欣赏金庸的这段话。李泽厚先生说过:“世界的文化类型分为日神型和酒神
型。酒神型文化追求的是个人的自由,日神型文化注重的是群体的和谐。”中国文化属
于日神型,中国人一直崇尚中庸之美,所以中国文化缺乏上文所说的剧烈的凄怆之感。
但说到厉胜男却是个例外。不管人们如何看待她,厉胜男永远是武侠甚至文学作品中一
个永远无法忽略的人物,无论是憎恨还是喜爱。网上关于厉胜男善恶的争论很多,但我
一直认为善恶的简
avatar
n*3
2
新手刚开始vb.net不到一年,event handler部分还很困惑。手头有一个project, 是一
个windowsCE版的application.我的工作是把它转成windows application will be
running on win 7 os, 所有程序都不用改,只是event handler process 要改, 因为
不同os系统。
app是这样的,main form只包括一些button, click the button to open secondary
level forms, these forms will handle the sanner event, and based on the data
input, 3rd level forms could be open from some point and handle scanner
event too.
main form will just initial scanner class, no data handler. the secondary
and third level form contain "Friend WithEvents" and a sub handles these
scanner data. every for has different way to process data.
当scanner event 发生,任何一个active的form(on the top)就要handle the scanned
data. event只能由scanner class to invoke a sub outside the scanner class to
raise.这部分只能这样不能改。原有的这个windowCE是work的,但是用的是Microsoft.
WindowsCE.Forms.MessageWindow, 转成windows app 就不能用了。我试过把scanner
event放在module里,在每个form里的sub form_load 加addhandler, 第一个form read
很好,但是这些forms开的多了,换来换去的,程序就因有太多激活的handler而死机。
所以这种方发不可行。
又试了写一个evntclass for raise the event, 用withevents和sub getdata()
handles evntclass.event 来handle.在scanner class里, 当scan发生,new一个
evntclass to raise this event, 但是在form class里根本接受不到这个event, 可能
是因为scannerclass new 的这个evntclass 和form里的evntclass是different copy
of evntclass, they cannot see each other. 这种方法只有raise event and handle
event方在一个class里才能work 是吗?
所以我又研究了一下原程序,他的方法用的是microsoft.WindowsCE.Forms.
MessageWindow来raise这个event,这样每个form都能看到这个event,从而可以handle
它.
每个form里有"Friend WithEvents event1 as new MsgWindow " 和 "sub getdata()
handles event1.raiseevent1".
in scanner class:
.....
if scan happens then
Dim msg As Microsoft.WindowsCE.Forms.Message = Microsoft.WindowsCE.Forms.
Message.Create(HWND_BROADCAST, WM_ManagedScan, IntPtr.Zero, IntPtr.Zero)
MessageWindow.SendMessage(msg)
end it
end class
----module for the event --------
Module modMessage
Public Class MsgWindow
Inherits microsoft.WindowsCE.Forms.MessageWindow

Public Event Event1(ByVal ScanData As String)
Protected Overrides Sub WndProc(ByRef msg As icrosoft.WindowsCE.
Forms.Message)
Select Case msg.Msg
RaiseEvent Event1(ScanData)
End Select
MyBase.WndProc(msg)
End Sub
End Class
我注意到他用create a msg and use MessageWindow.sendMessage(msg) method to
send it out to invoke Class MsgWindow's Overrides Sub WndProc, so the event
get to raised. that way, the event1 raised from messageWindow will be seeing
by every form in the app? why?
我的问提是:
1。这种方法raised的event就可以被所有form看到吗?为什么呢?
2。windows系统是否也有相似的功能?如果有,那么这部分code怎样转换成可以用于
windows app的呢?
请大侠们帮帮忙, 我这个新手实在想不出别的办法。网上搜索了很久了。万分感谢!!
avatar
wh
3
发信人: coolnight (宵寒), 信区: paladin
标 题: Re: Re: 评云海玉弓缘:烟消云散话胜男(转载)
发信站: BBS 未名空间站 (Tue Jan 27 17:37:55 2009)
看过这篇转载文章,真写的很好!本来还想写篇文章来谈论一下《云海玉弓缘》这本我
最喜欢的武侠小说,看来这篇文章,只好打消这个念头。窃以为,这本小说不仅是梁羽
生先生的最高成就,也是整个现代武侠小说的最杰出之作。JGG妹妹应该是很喜欢厉胜
男这个人物的,我也是。初读这本小说的时候应该是小学四年级的时候,那个时候还不
太懂男女之爱,印象也不是很深刻,但很喜欢金世遗这个人物。等到读高中和大学的时
候,又重读了好几遍,内心是十分震撼的,为什么震撼?当然是厉胜男给我的震撼,这
个女子敢爱敢恨,蔑视一切世俗和偏见,为达到自己的目的不择手段,但她的不择手段
一点也不让你感觉卑鄙、阴暗,不像金庸笔下的周芷若,岳不群的机关算尽、道貌岸然
,而是光明正大,自然而然。在正统面前她从不掩饰自己的另类,在所谓的道德面前她
也从不放弃自己的野心。金世遗从一开始并不爱厉胜男,而就在于厉胜男交往相处的日
子里

【在 wh 的大作中提到】
: 【 以下文字转载自 paladin 讨论区 】
: 发信人: JGG (六月的茉莉梦), 信区: paladin
: 标 题: 评云海玉弓缘:烟消云散话胜男(转载)
: 发信站: BBS 未名空间站 (Sun Jan 25 23:48:14 2009)
: 烟消云散话胜男
: 希腊史诗《伊里亚特》记述赫克托和亚契力斯绕城大战这一段中,描写众天神拿了
: 天平来秤这两个英雄的命运,小时候我读到赫克托这一端沉了下去,天神们决定他必须
: 战败而死,感到非常难过,“那不公平!那不公平!”过了许多岁月,当我读到满清的
: 皇太极怎样设反间计、崇祯和他的大臣们怎样商量要不要杀死袁崇焕,同样有剧烈的凄
: 怆之感。

avatar
v*n
4
ce 也是从 windows 移植过去的,WndProc 涉及到底层 win32 message处理了, 跟
VB 的 Event 不是一个概念
HWND_BROADCAST 给所有 top-level 窗口发消息
http://msdn.microsoft.com/en-us/library/windows/desktop/ms64495
我估计 System.Windows.Forms.Form 和你这里 CE 的 MessageWindow 对应

data

【在 n*****3 的大作中提到】
: 新手刚开始vb.net不到一年,event handler部分还很困惑。手头有一个project, 是一
: 个windowsCE版的application.我的工作是把它转成windows application will be
: running on win 7 os, 所有程序都不用改,只是event handler process 要改, 因为
: 不同os系统。
: app是这样的,main form只包括一些button, click the button to open secondary
: level forms, these forms will handle the sanner event, and based on the data
: input, 3rd level forms could be open from some point and handle scanner
: event too.
: main form will just initial scanner class, no data handler. the secondary
: and third level form contain "Friend WithEvents" and a sub handles these

avatar
wh
5
我也很喜欢厉胜男。名字就很漂亮。“我自小就不信命运,我想要的东西一定要拿到,
我想办的事情一定要办到,即算是命中注定,我也一定要尽力挽回!”这一段我也印象
很深。最后死的那一段也是,觉得很惨。杰克伦敦、呼啸山庄也都喜欢。

【在 wh 的大作中提到】
: 发信人: coolnight (宵寒), 信区: paladin
: 标 题: Re: Re: 评云海玉弓缘:烟消云散话胜男(转载)
: 发信站: BBS 未名空间站 (Tue Jan 27 17:37:55 2009)
: 看过这篇转载文章,真写的很好!本来还想写篇文章来谈论一下《云海玉弓缘》这本我
: 最喜欢的武侠小说,看来这篇文章,只好打消这个念头。窃以为,这本小说不仅是梁羽
: 生先生的最高成就,也是整个现代武侠小说的最杰出之作。JGG妹妹应该是很喜欢厉胜
: 男这个人物的,我也是。初读这本小说的时候应该是小学四年级的时候,那个时候还不
: 太懂男女之爱,印象也不是很深刻,但很喜欢金世遗这个人物。等到读高中和大学的时
: 候,又重读了好几遍,内心是十分震撼的,为什么震撼?当然是厉胜男给我的震撼,这
: 个女子敢爱敢恨,蔑视一切世俗和偏见,为达到自己的目的不择手段,但她的不择手段

avatar
n*3
6
新手刚开始vb.net不到一年,event handler部分还很困惑。手头有一个project, 是一
个windowsCE版的application.我的工作是把它转成windows application will be
running on win 7 os, 所有程序都不用改,只是event handler process 要改, 因为
不同os系统。
app是这样的,main form只包括一些button, click the button to open secondary
level forms, these forms will handle the sanner event, and based on the data
input, 3rd level forms could be open from some point and handle scanner
event too.
main form will just initial scanner class, no data handler. the secondary
and third level form contain "Friend WithEvents" and a sub handles these
scanner data. every for has different way to process data.
当scanner event 发生,任何一个active的form(on the top)就要handle the scanned
data. event只能由scanner class to invoke a sub outside the scanner class to
raise.这部分只能这样不能改。原有的这个windowCE是work的,但是用的是Microsoft.
WindowsCE.Forms.MessageWindow, 转成windows app 就不能用了。我试过把scanner
event放在module里,在每个form里的sub form_load 加addhandler, 第一个form read
很好,但是这些forms开的多了,换来换去的,程序就因有太多激活的handler而死机。
所以这种方发不可行。
又试了写一个evntclass for raise the event, 用withevents和sub getdata()
handles evntclass.event 来handle.在scanner class里, 当scan发生,new一个
evntclass to raise this event, 但是在form class里根本接受不到这个event, 可能
是因为scannerclass new 的这个evntclass 和form里的evntclass是different copy
of evntclass, they cannot see each other. 这种方法只有raise event and handle
event方在一个class里才能work 是吗?
所以我又研究了一下原程序,他的方法用的是microsoft.WindowsCE.Forms.
MessageWindow来raise这个event,这样每个form都能看到这个event,从而可以handle
它.
每个form里有"Friend WithEvents event1 as new MsgWindow " 和 "sub getdata()
handles event1.raiseevent1".
in scanner class:
.....
if scan happens then
Dim msg As Microsoft.WindowsCE.Forms.Message = Microsoft.WindowsCE.Forms.
Message.Create(HWND_BROADCAST, WM_ManagedScan, IntPtr.Zero, IntPtr.Zero)
MessageWindow.SendMessage(msg)
end it
end class
----module for the event --------
Module modMessage
Public Class MsgWindow
Inherits microsoft.WindowsCE.Forms.MessageWindow

Public Event Event1(ByVal ScanData As String)
Protected Overrides Sub WndProc(ByRef msg As icrosoft.WindowsCE.
Forms.Message)
Select Case msg.Msg
RaiseEvent Event1(ScanData)
End Select
MyBase.WndProc(msg)
End Sub
End Class
我注意到他用create a msg and use MessageWindow.sendMessage(msg) method to
send it out to invoke Class MsgWindow's Overrides Sub WndProc, so the event
get to raised. that way, the event1 raised from messageWindow will be seeing
by every form in the app? why?
我的问提是:
1。这种方法raised的event就可以被所有form看到吗?为什么呢?
2。windows系统是否也有相似的功能?如果有,那么这部分code怎样转换成可以用于
windows app的呢?
请大侠们帮帮忙, 我这个新手实在想不出别的办法。网上搜索了很久了。万分感谢!!
avatar
s*n
7
厉胜男的性格过于激烈了,
其实我一直嚼得,和梁羽生本人气质最相似的女猪,还素冒浣莲。

【在 wh 的大作中提到】
: 我也很喜欢厉胜男。名字就很漂亮。“我自小就不信命运,我想要的东西一定要拿到,
: 我想办的事情一定要办到,即算是命中注定,我也一定要尽力挽回!”这一段我也印象
: 很深。最后死的那一段也是,觉得很惨。杰克伦敦、呼啸山庄也都喜欢。

avatar
v*n
8
ce 也是从 windows 移植过去的,WndProc 涉及到底层 win32 message处理了, 跟
VB 的 Event 不是一个概念
HWND_BROADCAST 给所有 top-level 窗口发消息
http://msdn.microsoft.com/en-us/library/windows/desktop/ms64495
我估计 System.Windows.Forms.Form 和你这里 CE 的 MessageWindow 对应

data

【在 n*****3 的大作中提到】
: 新手刚开始vb.net不到一年,event handler部分还很困惑。手头有一个project, 是一
: 个windowsCE版的application.我的工作是把它转成windows application will be
: running on win 7 os, 所有程序都不用改,只是event handler process 要改, 因为
: 不同os系统。
: app是这样的,main form只包括一些button, click the button to open secondary
: level forms, these forms will handle the sanner event, and based on the data
: input, 3rd level forms could be open from some point and handle scanner
: event too.
: main form will just initial scanner class, no data handler. the secondary
: and third level form contain "Friend WithEvents" and a sub handles these

avatar
wh
9
所以叫厉胜男啊,如果你觉得激烈,可见写得很成功。
不熟悉梁羽生。干嘛找个女主角,你找个男的。不会是纳兰容若吧?

【在 s***n 的大作中提到】
: 厉胜男的性格过于激烈了,
: 其实我一直嚼得,和梁羽生本人气质最相似的女猪,还素冒浣莲。

avatar
s*n
10
人纳兰一翩翩浊世佳公子形象,和传统的迂腐型书生还素有一定区别的。

所以叫厉胜男啊,如果你觉得激烈,可见写得很成功。
不熟悉梁羽生。干嘛找个女主角,你找个男的。不会是纳兰容若吧?

【在 wh 的大作中提到】
: 所以叫厉胜男啊,如果你觉得激烈,可见写得很成功。
: 不熟悉梁羽生。干嘛找个女主角,你找个男的。不会是纳兰容若吧?

avatar
s*n
11
so长,终于读完了。
现在看这种爱不爱的,想想其实都只素浮云,浮云……

【在 wh 的大作中提到】
: 【 以下文字转载自 paladin 讨论区 】
: 发信人: JGG (六月的茉莉梦), 信区: paladin
: 标 题: 评云海玉弓缘:烟消云散话胜男(转载)
: 发信站: BBS 未名空间站 (Sun Jan 25 23:48:14 2009)
: 烟消云散话胜男
: 希腊史诗《伊里亚特》记述赫克托和亚契力斯绕城大战这一段中,描写众天神拿了
: 天平来秤这两个英雄的命运,小时候我读到赫克托这一端沉了下去,天神们决定他必须
: 战败而死,感到非常难过,“那不公平!那不公平!”过了许多岁月,当我读到满清的
: 皇太极怎样设反间计、崇祯和他的大臣们怎样商量要不要杀死袁崇焕,同样有剧烈的凄
: 怆之感。

avatar
i*l
12
有故事的人都是痛苦的人
有好故事的人都是极度痛苦的人
哎 纠葛啊 两难啊~~

【在 s***n 的大作中提到】
: so长,终于读完了。
: 现在看这种爱不爱的,想想其实都只素浮云,浮云……

avatar
wh
13
梁羽生迂腐吗?他把西北写得那么漂亮,说啥也该很豪气啊。

【在 s***n 的大作中提到】
: 人纳兰一翩翩浊世佳公子形象,和传统的迂腐型书生还素有一定区别的。
:
: 所以叫厉胜男啊,如果你觉得激烈,可见写得很成功。
: 不熟悉梁羽生。干嘛找个女主角,你找个男的。不会是纳兰容若吧?

avatar
wh
14
我觉得有点自我发挥,不过显然是很有感而发,几部小说联系得也都很贴切。李泽厚借
用尼采的日酒神论显然偏颇,不过文章后面说的古希腊悲剧我也很喜欢。

【在 s***n 的大作中提到】
: so长,终于读完了。
: 现在看这种爱不爱的,想想其实都只素浮云,浮云……

avatar
t*e
15
你竟然喜欢这样的名字! 很强硬啊:)

【在 wh 的大作中提到】
: 我也很喜欢厉胜男。名字就很漂亮。“我自小就不信命运,我想要的东西一定要拿到,
: 我想办的事情一定要办到,即算是命中注定,我也一定要尽力挽回!”这一段我也印象
: 很深。最后死的那一段也是,觉得很惨。杰克伦敦、呼啸山庄也都喜欢。

avatar
wh
16
我喜欢这个姓,哈哈。胜男很普通了。最早听说的是赵倩男,才知道叫男的原来是女的。

【在 t***e 的大作中提到】
: 你竟然喜欢这样的名字! 很强硬啊:)
avatar
t*e
17
这话挺有哲理的

【在 i**l 的大作中提到】
: 有故事的人都是痛苦的人
: 有好故事的人都是极度痛苦的人
: 哎 纠葛啊 两难啊~~

avatar
wh
18
顶一下顶一下,qicheji来看厉胜男。还是jgg转的噢。

【在 wh 的大作中提到】
: 我喜欢这个姓,哈哈。胜男很普通了。最早听说的是赵倩男,才知道叫男的原来是女的。
avatar
q*i
19
这么长……

【在 wh 的大作中提到】
: 顶一下顶一下,qicheji来看厉胜男。还是jgg转的噢。
avatar
wh
20
好看的,你慢慢看,我先走啦。

【在 q*****i 的大作中提到】
: 这么长……
avatar
wh
21
哎你看了没有?怎么没有评论?你喜欢厉胜男,是不是因为这是你看的第一个武侠小说?

【在 q*****i 的大作中提到】
: 这么长……
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。