当前位置:首页 » 编程软件 » 事件编程

事件编程

发布时间: 2022-05-11 22:19:26

㈠ 什么是事件驱动编程机制

事件驱动编程机制为需要处理的事件编写相应的事件处理程序

要理解事件驱动和程序,就需要与非事件驱动的程序进行比较。

实际上,现代的程序大多是事件驱动的,比如多线程的程序,肯定是事件驱动的。

早期则存在许多非事件驱动的程序,这样的程序,在需要等待某个条件触发时,会不断地检查这个条件,直到条件满足,这是很浪费cpu时间的。

而事件驱动的程序,则有机会释放cpu从而进入睡眠态(注意是有机会,当然程序也可自行决定不释放cpu),当事件触发时被操作系统唤醒,这样就能更加有效地使用cpu。

(1)事件编程扩展阅读

为需要处理的事件编写相应的事件处理程序。代码在事件发生时执行。

delphi和java编程特点

n事件(event)表示程序某件事发生的信号,事件分为:

o外部事件:由外部用户动作产生的事件。例如,点击鼠标、按键盘。

o内部事件:由系统内部产生的事件。例如,定时器事件。

n源对象(source object)是产生事件的对象。

㈡ 网页事件类型及其作用并试举一例如何对网页事件编程。

网页事件用于响应用户所做的动作。例如用户单击某个按钮,用户关闭某个窗口等。

如要对网页事件编程,最简单的方法是借助脚本框架,如jquery或JSer.
例如以下示例性的代码,用于指定在网页加载完成时弹出一个alert提示。:
JSer.exec(function(){
alert("网页加载完成。");

});

㈢ 编程 关于事件

1.定义激发事件的对象.
2 处理对象事件的对象
3.定义委托。

以下内容是Copy的、
作者:TomMax (笑望人生) 出处:csdn

主 题: “.net百题问答的活动”--许多人问过的--《 C#委托及事件 》

所属论坛: .NET技术 C#

有许多人问的,.Net中的委托以及事件处理。我拿简单的例子说明一下,是现实中的例子:

比如说一个公司(场景),你是老板,手下有两个员工,小张和小王。

你命令小王,如果小张玩游戏,则小王扣去小张500元钱。

这就是现实中的委托。

实际上,在写程序中,程序员就是老板,小张和小王就是两个对象。小张玩游戏是一个方法,小张还有一个游戏事件,他玩游戏激发这个事件。而小王就是事件处理对象,他负责把小张的钱扣除500。

所以,委托有如下几个要素:

1 激发事件的对象--就是小张

2 处理对象事件的对象--就是小王

3 定义委托,就是你让小王监视小张。

如果这三个要素都满足的话,则你就写出了一个完整事件的处理。

下面有个例子:在vs.net2003 C#控制台应用程序编辑运行成功:

using System;

namespace CSharpConsole
{

public class 场景
{
[STAThread]
public static void Main(string[] args)
{
Console.WriteLine("场景开始了....");

// 生成小王

小王 w = new 小王();

// 生成小账

小张 z = new 小张();

// 指定监视

z.PlayGame += new PlayGameHandler(w.扣钱);

// 开始玩游戏

z.玩游戏();

console.writeline("场景结束...");

Console.ReadLine();

}

}

// 负责扣钱的人

public class 小王
{

public 小王()
{

Console.WriteLine("生成小王...");

}

public void 扣钱(object sender, EventArgs e)
{

Console.WriteLine("小王:好小子,上班时间胆敢玩游戏...");

Console.WriteLine("小王:看看你小子有多少钱...");

小张 f = (小张)sender;

Console.WriteLine("小张的钱: " + f.钱.ToString());

Console.WriteLine("开始扣钱......");

System.Threading.Thread.Sleep(500);

f.钱 = f.钱 - 500;

Console.WriteLine("扣完了....现在小张还剩下:" + f.钱.ToString());

}

}

// 如果玩游戏,则引发事件

public class 小张
{

// 先定义一个事件,这个事件表示“小张”在玩游戏。

public event PlayGameHandler PlayGame;

// 保存小张钱的变量

private int m_Money;

public 小张()
{

Console.WriteLine("生成小张....");

m_Money = 1000; // 构造函数,初始化小张的钱。

}

public int 钱 // 此属性可以操作小张的钱。
{

get
{

return m_Money;

}

set
{

m_Money = value;

}

}

public void 玩游戏()
{

Console.WriteLine("小张开始玩游戏了.....");

Console.WriteLine("小张:CS好玩,哈哈哈! 我玩.....");

System.Threading.Thread.Sleep(500);

System.EventArgs e = new EventArgs();

OnPlayGame(e);

}

protected virtual void OnPlayGame(EventArgs e)
{

if (PlayGame != null)
{

PlayGame(this, e);

}

}

}

// 定义委托处理程序

public delegate void PlayGameHandler(object sender, System.EventArgs e);

}

㈣ 编程语言中事件的概念是什么

编程中的事件,是个抽象的概念,有点像英语老师说的 something。

以下节选自网络 “事件驱动”词条

计算机领域的事件驱动
所谓事件驱动,简单地说就是你点什么按钮(即产生什么事件),电脑执行什么操作(即调用什么函数).当然事件不仅限于用户的操作. 事件驱动的核心自然是事件。从事件角度说,事件驱动程序的基本结构是由一个事件收集器、一个事件发送器和一个事件处理器组成。事件收集器专门负责收集所有事件,包括来自用户的(如鼠标、键盘事件等)、来自硬件的(如时钟事件等)和来自软件的(如操作系统、应用程序本身等)。事件发送器负责将收集器收集到的事件分发到目标对象中。事件处理器做具体的事件响应工作,它往往要到实现阶段才完全确定,因而需要运用虚函数机制(函数名往往取为类似于HandleMsg的一个名字)。对于框架的使用者来说,他们唯一能够看到的是事件处理器。这也是他们所关心的内容。

㈤ vb怎样理解事件驱动编程

对于某个对象而言,事件(event)就是发生在该对象上的事情,通常这是由用户在对象上激发的一种动作。在VB中,系统为每个对象预先定义好了一些列的事件。事件即控件对外部条件的反应,不同的控件具有不用的事件。如:通常情况下命令按钮就是用来单击。
一个事件的发生,可引起或驱动相应的事件处理过程的执行,即事件驱动!如果我们使用控件的相应事件,就必须对其相应的事件进行编写代码,否则控件什么事情也不会做。

㈥ VB中在代码窗口中如何选择相应的对象,事件进行编程

先到界面编辑窗口,然后选中控件,在property界面中,选择event就可以针对事件编程了

㈦ 如何利用javascript进行事件编程

1、给想要做效果的html标签加id或者class
2、利用id或者class做事件绑定
3、利用绑定的事件达到你想要的目的

例:
<div class="demo">点击我试试</div>

$(".demo" ).click(function(){
$(this).hide();
});

这是一个jQuery做的案例,首先你要引用jQuery文件,然后达到的效果是,点击class=demo,自身就会消失不见!

㈧ C#中的事件 怎么回事

事件(event),这个词儿对于初学者来说,往往总是显得有些神秘,不易弄懂。而这些东西却往往又是编程中常用且非常重要的东西。大家都知道windows消息处理机制的重要,其实C#事件就是基于windows消息处理机制的,只是封装的更好,让开发者无须知道底层的消息处理机制,就可以开发出强大的基于事件的应用程序来。

先来看看事件编程有哪些好处。
在以往我们编写这类程序中,往往采用等待机制,为了等待某件事情的发生,需要不断地检测某些判断变量,而引入事件编程后,大大简化了这种过程:
- 使用事件,可以很方便地确定程序执行顺序。
- 当事件驱动程序等待事件时,它不占用很多资源。事件驱动程序与过程式程序最大的不同就在于,程序不再不停地检查输入设备,而是呆着不动,等待消息的到来,每个输入的消息会被排进队列,等待程序处理它。如果没有消息在等待,则程序会把控制交回给操作系统,以运行其他程序。
- 事件简化了编程。操作系统只是简单地将消息传送给对象,由对象的事件驱动程序确定事件的处理方法。操作系统不必知道程序的内部工作机制,只是需要知道如何与对象进行对话,也就是如何传递消息。

有了这么多好处,看来我们的确有必要掌握它。俗话说:“难了不会,会了不难”。就让我们一步一步开始吧...

要讲事件,必然要讲到委托(delegate)。它们之间的关系可以通过一个浅显的比方来说明,这个比方可能不是十分恰当。比如你要租一个房屋,这是一个事件,那么委托就是房屋租赁中介,当你把租房子的消息告知中介后,中介就会产生出一套符合你要求的房屋租赁方案来。再由中介执行这套方案,你便租得了这个房屋,即事件被处理了。当然你也可以不通过中介,直接找房东,但如果没有互联网等工具,你如何得到谁出租房屋的信息?话题扯远了。

委托(delegate)
委托可以理解成为函数指针,不同的是委托是面向对象,而且是类型安全的。关于委托的理解,可以参考我的另一篇文章《C#委托之个人理解》。

事件(event)
我们可以把事件编程简单地分成两个部分:事件发生的类(书面上叫事件发生器)和事件接收处理的类。事件发生的类就是说在这个类中触发了一个事件,但这个类并不知道哪个个对象或方法将会加收到并处理它触发的事件。所需要的是在发送方和接收方之间存在一个媒介。这个媒介在.NET Framework中就是委托(delegate)。在事件接收处理的类中,我们需要有一个处理事件的方法。好了,我们就按照这个顺序来实现一个捕获键盘按键的程序,来一步一步说明如何编写事件应用程序。

1、首先创建一个自己的EventArgs类。
引自MSDN:
EventArgs是包含事件数据的类的基类,此类不包含事件数据,在事件引发时不向事件处理程序传递状态信息的事件会使用此类。如果事件处理程序需要状态信息,则应用程序必须从此类派生一个类来保存数据。
因为在我们键盘按键事件中要包含按键信息,所以要派生一个KeyEventArgs类,来保存按键信息,好让后面知道按了哪个键。

internal class KeyEventArgs : EventArgs
{
private char keyChar;
public KeyEventArgs( char keyChar ) : base()
{
this.keyChar = keyChar;
}

public char KeyChar
{
get
{
return keyChar;
}
}
}

2、再创建一个事件发生的类KeyInputMonitor,这个类用于监控键盘按键的输入并触发一个事件:
internal class KeyInputMonitor
{
// 创建一个委托,返回类型为void,两个参数
public delegate void KeyDown( object sender, KeyEventArgs e );
// 将创建的委托和特定事件关联,在这里特定的事件为OnKeyDown
public event KeyDown OnKeyDown;

public void Run()
{
bool finished = false;
do
{
Console.WriteLine( "Input a char" );
string response = Console.ReadLine();

char responseChar = ( response == "" ) ? ' ' : char.ToUpper( response[0] );
switch( responseChar )
{
case 'X':
finished = true;
break;
default:
// 得到按键信息的参数
KeyEventArgs keyEventArgs = new KeyEventArgs( responseChar );
// 触发事件
OnKeyDown( this, keyEventArgs );
break;
}
}while( !finished );
}
}

这里注意OnKeyDown( this, KeyEventArgs );一句,这就是触发事件的语句,并将事件交由KeyDown这个委托来处理,委托指定事件处理方法去处理事件,这就是事件接收方的类的事情了。参数this是指触发事件的对象就是本身这个对象,keyEventArgs包含了按键信息。

3、最后创建一个事件接收方的类,这个类先产生一个委托实例,再把这个委托实例添加到产生事件对象的事件列表中去,这个过程又叫订阅事件。然后提供一个方法回显按键信息。
internal class EventReceiver
{
public EventReceiver( KeyInputMonitor monitor )
{
// 产生一个委托实例并添加到KeyInputMonitor产生的事件列表中
monitor.OnKeyDown += new KeyInputMonitor.KeyDown( this.Echo );
}
private void Echo(object sender, KeyEventArgs e)
{
// 真正的事件处理函数
Console.WriteLine( "Capture key: {0}", e.KeyChar );
}
}

4、看一下如何调用
public class MainEntryPoint
{
public static void Start()
{
// 实例化一个事件发送器
KeyInputMonitor monitor = new KeyInputMonitor();
// 实例化一个事件接收器
EventReceiver eventReceiver = new EventReceiver( monitor );
// 运行
monitor.Run();
}
}

总结:
C#中使用事件需要的步骤:
1.创建一个委托
2.将创建的委托与特定事件关联(.Net类库中的很多事件都是已经定制好的,所以他们也就有相应的一个委托,在编写关联事件处理程序--也就是当有事件发生时我们要执行的方法的时候我们需要和这个委托有相同的签名)
3.编写事件处理程序
4.利用编写的事件处理程序生成一个委托实例
5.把这个委托实例添加到产生事件对象的事件列表中去,这个过程又叫订阅事件

C#中事件产生和实现的流程:
1.定义A为产生事件的实例,a为A产生的一个事件
2.定义B为接收事件的实例,b为处理事件的方法
3.A由于用户(程序编写者或程序使用者)或者系统产生一个a事件(例如点击一个Button,产生一个Click事件)
4.A通过事件列表中的委托对象将这个事件通知给B
5.B接到一个事件通知(实际是B.b利用委托来实现事件的接收)
6.调用B.b方法完成事件处理

㈨ 事件驱动编程的一般步骤

为需要处理的事件编写相应的事件处理程序。代码在事件发生时执行。

delphi和java编程特点

n事件(event)表示程序某件事发生的信号。事件分为:

o外部事件:由外部用户动作产生的事件。例如,点击鼠标、按键盘。

o内部事件:由系统内部产生的事件。例如,定时器事件。

n源对象(source object)是产生事件的对象。

一般步骤

编辑

1、确定响应事件的元素

2、为指定元素确定需要响应的事件类型

3、为指定元素的指定事件编写相应的事件处理程序

4、将事件处理程序绑定到指定元素的指定事件

事件类

每个事件对象包含与该事件相关的属性。getSource()方法可以获取事件的源对象。

热点内容
app什么情况下找不到服务器 发布:2025-05-12 15:46:25 浏览:714
php跳过if 发布:2025-05-12 15:34:29 浏览:467
不定时算法 发布:2025-05-12 15:30:16 浏览:131
c语言延时1ms程序 发布:2025-05-12 15:01:30 浏览:166
动物园灵长类动物配置什么植物 发布:2025-05-12 14:49:59 浏览:736
wifi密码设置什么好 发布:2025-05-12 14:49:17 浏览:148
三位数乘两位数速算法 发布:2025-05-12 13:05:48 浏览:397
暴风影音缓存在哪里 发布:2025-05-12 12:42:03 浏览:542
access数据库exe 发布:2025-05-12 12:39:04 浏览:630
五开的配置是什么 发布:2025-05-12 12:36:37 浏览:365