如何:在 Windows 窗体应用程序中使用事件

 我来答
匿名用户
2017-11-16
展开全部

参考微软的:网页链接

Windows 窗体应用程序中的一种常见情况是显示带控件的窗体,然后根据用户单击的控件执行特定操作。             例如,当用户在窗体中单击 Button 控件时,该控件会引发一个事件。  通过处理该事件,应用程序可以针对该按钮单击操作执行适当的应用程序逻辑。  

有关 Windows 窗体的更多信息,请参见 Windows 窗体入门。        

处理 Windows 窗体上的按钮单击事件

  • 创建一个具有 Button 控件的 Windows 窗体。

    C#C++VB复制

    private Button button;

  • 定义一个与 Click 事件委托签名匹配的事件处理程序。  Click 事件为该委托类型使用 EventHandler 类,而为该事件数据使用 EventArgs 类。

    C#C++VB复制

    private void Button_Click(object sender, EventArgs e) {     //... }

  • 将事件处理程序方法添加到 Button 的 Click 事件。

    C#C++VB复制

    button.Click += new EventHandler(this.Button_Click);

    说明                  

    设计器(如 Visual Studio 2005)将通过生成与下面的示例中的代码类似的代码来为您执行此事件连接。                    

  • 示例                                      

  • 下面的代码示例处理 Button 的 Click 事件以更改 TextBox 的背景色。  以粗体表示的元素显示了该事件处理程序以及它如何连结到 Button 的 Click 事件。  

    此示例中的代码不是使用可视设计器(例如 Visual Studio 2005)编写的,并且只包含基本的编程元素。  如果您使用设计器,它将生成附加代码。  

  • C#C++VB复制

  • using
     System;

    using
     System.ComponentModel;

    using
     System.Windows.Forms;

    using
     System.Drawing;


    public
     
    class
     MyForm : Form

    {

        
    private
     TextBox box;

        
    private
     Button button;


        
    public
     MyForm() : 
    base
    ()

        {

            box = 
    new
     TextBox();

            box.BackColor = System.Drawing.Color.Cyan;

            box.Size = 
    new
     Size(100,100);

            box.Location = 
    new
     Point(50,50);

            box.Text = 
    "Hello"
    ;


            button = 
    new
     Button();

            button.Location = 
    new
     Point(50,100);

            button.Text = 
    "Click Me"
    ;


            
    // To wire the event, create

            
    // a delegate instance and add it to the Click event.

            button.Click += 
    new
     EventHandler(
    this
    .Button_Click);

            Controls.Add(box);

            Controls.Add(button);

        }


        
    // The event handler.

        
    private
     
    void
     Button_Click(
    object
     sender, EventArgs e)

        {

            box.BackColor = System.Drawing.Color.Green;

        }


        
    // The STAThreadAttribute indicates that Windows Forms uses the

        
    // single-threaded apartment model.

        [STAThread]

        
    public
     
    static
     
    void
     Main()

        {

            Application.Run(
    new
     MyForm());

        }

    }

  • 编译代码                                      

  • 将上面的代码保存到一个文件(对于 C# 文件,扩展名为 .cs,对于 Visual Basic 2005,扩展名为 .vb)中,进行编译,然后执行。  例如,如果源文件名为 WinEvents.cs(或 WinEvents.vb),请执行下面的命令。  

  • C#C++VB复制csc /r:System.DLL /r:System.Windows.Forms.dll /r:System.Drawing.dll WinEvents.vb


  • 您的可执行文件将被命名为 WinEvents.exe。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式