青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Programmer's Cookbook

{C++ 基礎(chǔ)} {C++ 高級} {C#界面,C++核心算法} {設(shè)計模式} {C#基礎(chǔ)}

Event Handling in C#(轉(zhuǎn))

 

In a previous article, we have seen a sneak preview about event handling in C#. In this article, we will examine the concept in detail with the help of relevant examples.

Understanding the Basic Technique

Actions and events serve an important part in every GUI-based application. These are equally important in the same way because we are arranging components using either Visual Studio .NET or by applying codes. It's these actions that instruct the program what to do when something happens.

For example, when a user performs a mouse click or a keyboard operation, some kind of event is taking place. If the user does not perform that operation, nothing will happen. Think of a situation where you are not performing a mouse click or a keyboard operation after booting the computer. Before going forward, let's discuss how different Application Programming Interfaces (APIs) handle events.

Microsoft Foundation Classes (MFC)

These classes are based upon the Microsoft Win32 API. Normally, development work is done through Visual C++; programming using this API is a tedious task. A developer would have to learn complex set of theories and syntaxes.

Java API

Java provides a nice set of packages and classes such as the Abstract Windowing Toolkit (AWT) and Swing packages to perform GUI-based programming. These classes and packages also provide functionalities for handling events. In Java, you have to learn the concept of Interfaces for applying actions. The main difficulty is that you should learn and remember all methods in the corresponding Interfaces, failing which you would get compile-time errors. As compared to Java, event handling in C# is much more simplified. It's possible to handle various mouse- and key-related events quickly and in a more efficient manner.

The basic principles behind event handling in C# is elaborated below. These principles are applicable to all languages under the .NET framework.

  1. Invoke the related event, such as Click, Key Press, and so forth by supplying a custom method using += operator as shown here:
    b1.Click += new EventHandler(Your Method Name)
    
  2. While applying the above method, it should conform to a delegate of the class System.EventHandler, as shown in the following code fragment:
    public delegate void EventHandler(object sender, Event e) {}
    

In the above code, the first argument indicates the object sending the event and the second argument contains information for the current event. You can use this argument object, here e, to handle functionalities associated with the related event.

Triggering a Button

In this session, we will examine how to activate a WinForm button.

As already outlined, you need not worry about the placement of controls if you are using Visual C# .NET. As you place buttons and text boxes, the built-in editor will automatically create codes in the background. Double-clicking a control takes you to the Form Editor's area, where you can straightaway type your codes. For our examples, we use Notepad as our editor and .NET SDK for compiling and executing the applications.

Use your favorite editor to enter the code shown in Listing 1 and save it as Butevent.cs. Finally, compile and execute the program.

Listing 1

// Compilation   :  csc Butevent.cs
// Execution     :  Butevent

using System;
using System.Windows.Forms;
using System.Drawing;

public class Butevent:Form  {
   TextBox t1 = new TextBox();
   Button b1 = new Button();

   public Butevent() {
     this.Text = "C# Program ";
     t1.Location = new Point(20,30);
     b1.Text = "Click here to activate";
     b1.Location = new Point(20,55);
     b1.Size = new Size(150,20);

     // Invoking Method or EventHandler
     b1.Click+=new EventHandler(OnClick);

     this.Controls.Add(t1);
     this.Controls.Add(b1);

     // Invoking Method or EventHandler
     this.Resize += new EventHandler(OnResize);
   }

   //Applying EventHandler
   public void OnResize(object sender,EventArgs ee) {
      MessageBox.Show("oops! Form Resized");
   }

   //Applying EventHandler
   public void OnClick(object sender,EventArgs e) {
      t1.Text = "Hello C#";
   }

   public static void Main() {
      Application.Run(new Butevent());
   }

}

There are two kinds of processes going on in the above piece of code. One is that, upon clicking the button (b1), "Hello C#" would be printed inside the Textbox. Another is when you resize the form; a message box pops up with the message as shown in the above code. Locate the message yourself by verifying the code.

Working with Mouse and Key Events

We will examine a few mouse- and key-related events in this last session of this article.

If you activate something via the mouse, the mouse event takes place whereas if you are using the keyboard, a key event occurs. There are various types of these events, such as pressing the mouse, releasing the mouse, entering the mouse, pressing the keyboard, and so forth. First, we will cover mouse events.

Handling Mouse Events

The Control class specifies various events using the mouse. One such event is MouseUp. You have to apply this event in your program as shown in Listing 2:

Listing 2

// Compilation   :  csc Mousedemo.cs
// Execution     :  Mousedemo

using System;
using System.Windows.Forms;
using System.Drawing;

public class Mousedemo:Form  {

   public Mousedemo()  {
     this.MouseUp += new MouseEventHandler(OnMouseup);
   }

   public void OnMouseup(object sender,MouseEventArgs e)   {
     this.Text = "Current Position (" +e.X + " , " + e.Y +")";
   }

   public static void Main()  {
     Application.Run(new Mousedemo());
   }

}

As usual, compile and execute the above code. The current mouse coordinates will be displayed on the Form's title bar. e.X and e.Y imply the X and Y coordinates, respectively. Other popular mouse events are Click, DoubleClick, MouseEnter, and MouseLeave. These events also can be handled in the similar way as outlined in the above code. Next, we will examine key-related events, which are triggered via the keyboard.

Using Keyboard Events

Every modern programming language contains all necessary functionalities for handling keyboard-related events. C# also provides us with three events. They are KeyPress, KeyUp, and KeyDown, which you can use to handle keyboard events.

Listing 3 shows the usage of the KeyUp event. As usual, enter the code given below using your editor.

Listing 3

// Compilation   :  csc Keydemo.cs
// Execution     :  Keydemo

using System;
using System.Windows.Forms;
using System.Drawing;

public class Keydemo:Form {

   public Keydemo() {
     this.KeyUp += new KeyEventHandler(OnKeyPress);
   }

   public void OnKeyPress(object sender, KeyEventArgs e)   {
     MessageBox.Show(e.KeyCode.ToString(), "Your input");
   }

   public static void Main()  {
     Application.Run(new Keydemo());
   }

}

Upon execution, press any key and you will be able to view a message box with the corresponding key code in it. Cool, isn't it?

-------------------------------------------

About the Author

Anand Narayanaswamy is a Microsoft MVP (Microsoft Most Valuable Professional) who works as a freelance Web/Software developer and technical writer. He runs and maintains learnxpress.com, and provides free technical support to users. His areas of interest include Web development, Software development using Visual Basic, and in the design and preparation of courseware, technical articles, and tutorials.

posted on 2005-11-15 16:37 夢在天涯 閱讀(981) 評論(0)  編輯 收藏 引用 所屬分類: C#/.NET

公告

EMail:itech001#126.com

導(dǎo)航

統(tǒng)計

  • 隨筆 - 461
  • 文章 - 4
  • 評論 - 746
  • 引用 - 0

常用鏈接

隨筆分類

隨筆檔案

收藏夾

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

積分與排名

  • 積分 - 1811735
  • 排名 - 5

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              国产精品国产a| 欧美日韩一二区| 国产在线乱码一区二区三区| 午夜影院日韩| 欧美在线视频一区| 亚洲国产成人不卡| 日韩视频三区| 国产日韩欧美精品在线| 久久午夜色播影院免费高清| 老司机免费视频久久| 亚洲激情视频在线播放| 日韩午夜av电影| 国产欧美日韩在线 | 欧美精品一区二区在线播放| 一区二区三区四区国产精品| 亚洲欧美日韩高清| 在线欧美小视频| 亚洲狼人精品一区二区三区| 国产精品一区二区在线观看不卡 | 亚洲国产精品免费| 99视频超级精品| 国产一区自拍视频| 亚洲国产老妈| 国产欧美91| 亚洲国产精品久久人人爱蜜臀| 欧美午夜无遮挡| 另类综合日韩欧美亚洲| 国产精品草莓在线免费观看| 麻豆精品精华液| 国产精品免费小视频| 国产精品福利在线| 蜜臀av一级做a爰片久久| 欧美日韩免费一区| 老鸭窝毛片一区二区三区| 欧美午夜精品| 欧美激情一区二区三区不卡| 国产精品视频导航| 亚洲日产国产精品| 黄色成人av网站| 亚洲私拍自拍| 日韩一区二区免费看| 久久精品官网| 欧美在线综合| 欧美揉bbbbb揉bbbbb| 亚洲国产精品久久| 亚洲第一久久影院| 久久久久国内| 久久久国产精品亚洲一区 | 亚洲人成在线观看网站高清| 欧美一区二区啪啪| 亚洲直播在线一区| 欧美日韩高清一区| 亚洲国产高清视频| 亚洲高清中文字幕| 久久手机精品视频| 美女爽到呻吟久久久久| 国内激情久久| 午夜在线不卡| 久久久国产91| 国内一区二区三区| 久久国产精品久久国产精品| 欧美在线观看你懂的| 国产精品白丝黑袜喷水久久久| 亚洲激情专区| 夜夜狂射影院欧美极品| 欧美精品乱码久久久久久按摩| 亚洲成人资源网| 亚洲人成啪啪网站| 欧美精品久久99久久在免费线| 亚洲激情综合| 亚洲天堂免费观看| 国产精品亚洲美女av网站| 亚洲一区二区三区国产| 欧美在线观看视频一区二区三区 | 美腿丝袜亚洲色图| 欧美激情小视频| 99re热这里只有精品免费视频| 欧美另类人妖| 亚洲婷婷综合久久一本伊一区| 亚洲一区一卡| 国产主播一区| 欧美ed2k| 亚洲制服欧美中文字幕中文字幕| 性久久久久久久| 在线国产亚洲欧美| 欧美日韩精品在线视频| 亚洲专区欧美专区| 欧美91精品| 亚洲影视在线播放| 亚洲天堂第二页| 久久婷婷国产综合国色天香| 亚洲精品国产精品国自产在线| 欧美区国产区| 欧美一区二区视频在线观看2020 | 美女图片一区二区| 在线一区观看| 影音先锋亚洲电影| 国产精品hd| 久久一区二区三区超碰国产精品| 亚洲美女视频| 免费欧美日韩国产三级电影| 亚洲男人的天堂在线aⅴ视频| 国产精品日韩欧美| 欧美黄色aa电影| 欧美一区三区二区在线观看| 亚洲人精品午夜| 久久精品一区二区三区不卡| 亚洲另类自拍| 又紧又大又爽精品一区二区| 欧美四级在线观看| 蜜臀av在线播放一区二区三区| 亚洲伊人色欲综合网| 91久久精品久久国产性色也91 | 亚洲欧洲精品一区二区三区不卡 | aⅴ色国产欧美| 欧美激情视频一区二区三区在线播放| 亚洲一级片在线观看| 亚洲人成欧美中文字幕| 国内自拍一区| 国产午夜一区二区三区| 国产精品久久久久久久久| 欧美va天堂在线| 久久精品一区二区三区四区| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲国产激情| 亚洲第一精品福利| 美女图片一区二区| 免费成人av在线| 久久久精品一品道一区| 欧美亚洲视频一区二区| 亚洲一区影院| 亚洲一级网站| 亚洲免费在线精品一区| 亚洲图片欧美一区| 亚洲天堂网在线观看| 99精品国产高清一区二区| 亚洲人在线视频| 日韩视频在线观看| 一本一本久久a久久精品综合妖精| 亚洲欧洲在线一区| 亚洲精品视频免费在线观看| 91久久综合| 亚洲日本成人女熟在线观看| 亚洲欧洲午夜| 99国产精品久久久久久久久久| 亚洲日本va午夜在线影院| 亚洲日本成人女熟在线观看| 亚洲精品国产拍免费91在线| 亚洲日本欧美在线| 中文精品视频| 小黄鸭精品aⅴ导航网站入口| 欧美一区二区日韩| 巨乳诱惑日韩免费av| 国产日韩一区在线| 国产在线视频不卡二| 一区在线影院| 亚洲精品在线一区二区| 亚洲午夜久久久久久久久电影网| 亚洲影视在线| 老巨人导航500精品| 亚洲精品1区2区| 亚洲午夜电影网| 久久国产精品亚洲77777| 欧美福利视频| 国产精品视频精品| 一色屋精品视频在线观看网站| 亚洲欧洲日产国产综合网| 9色精品在线| 久久精品成人欧美大片古装| 免费av成人在线| 日韩天堂av| 久久国产直播| 欧美日韩免费高清一区色橹橹| 国产日本欧美视频| 亚洲日本中文字幕| 欧美有码在线视频| 亚洲国产成人精品女人久久久| 中日韩视频在线观看| 久久蜜桃香蕉精品一区二区三区| 欧美日韩精品免费观看视频完整| 国产日韩一区二区| 亚洲少妇最新在线视频| 久久免费观看视频| 99re热这里只有精品免费视频| 欧美一区二区成人6969| 欧美日本一区二区视频在线观看| 国产视频精品va久久久久久| 日韩亚洲欧美成人一区| 美女图片一区二区| 亚洲欧美经典视频| 欧美日韩综合视频网址| 亚洲福利视频网| 久久精品盗摄| 在线一区二区三区做爰视频网站| 六月丁香综合| 国外成人免费视频| 久久精品青青大伊人av| 一区二区三区导航| 欧美日韩国产成人在线91| 一色屋精品视频在线看|