这篇文章主要介绍了C#自定义事件模拟风吹草摇摆效果,草地上每一颗草都监听HoverTreeWindEvent事件,根据风向(WindDdirection)调整姿态。需要的朋友可以参考下
这是一个自定义事件的例子。c#、winform、visual studio 2017。
在hovertreeform中画一块草地,上面有许多草(模拟)。
hewenqitianyi类模拟天气,会引发“风”事件(hovertreewindevent),风有东风或西风,或静止。
当吹东风,草往西边倒,吹西风则往东边到。静止则草不会东歪西倒。
草地上每一颗草都监听hovertreewindevent事件,根据风向(windddirection)调整姿态。
hewenqitianyi中有定时器,每隔一段时间触发调整风向的事件。
由于监听到的“风”事件不是winform中的线程,要改变winform中“草”的姿态,
使用了begininvoke方法和委托,在winform线程外访问控件。具体看hovertreegrass用户控件。
效果图:

hewenqitianyi类代码:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
using system;
using system.timers;
namespace tianyihewenqi
{
class hewenqitianyi
{
public static event actioneventhandler hovertreewindevent;
windeventargs _arg = new windeventargs();
public hewenqitianyi()
{
timer h_timer = new timer();
h_timer.interval = 3000;
h_timer.elapsed += h_timer_elapsed;
h_timer.start();
}
random _hoverclock= new random ();
private void h_timer_elapsed( object sender, elapsedeventargs e)
{
_arg.windtype = (windddirection)(_hoverclock.next(3));
onaction(_arg);
}
protected void onaction(windeventargs ev)
{
hovertreewindevent?.invoke(ev);
1 本网站名称:米米素材网
2 本站永久网址:https://www.mimisucai.cn
3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权进行删除处理。
4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
|
发表评论