日期:2014-05-16  浏览次数:20923 次

.NET--新一代的Windows应用程式

  其实这一节,讲的很简单,就是我们说的vb.net中的form窗体。将form窗体的时候,将它分成了3部分来讲:事件驱动、Winform、控件项,用我们之前学过的东西就是:控件的时间、form窗体、控件。这部分的思维导图是这样的:

 

  大家可以从上图中很清楚的看的出来,就是3部分了,首先大家要清楚他们之间的关系,form窗体中包含了很多的控制项(控件),同时,事件是依附在控件上的,也就是说有了对象才会有对象的事件的,Graphical User Interface 由很多的窗体组成,这就是他们的关系。

  那么接下来,我们就讨论一下这3部分的的一些个detail吧,首先是事件:事件的处理和事件处理函数。事件就是使用者所操作的每一个动作都叫做事件,事件会最终别拦截,传给应用程式中。我们一般来辨别事件的处理函数,就是用Handles关键字。举个例子:

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim i, j, k As Integer
        i = CInt(TextBox1.text)
        j = CInt(TextBox2.text)
        k = i + j
        System.Windows.Forms.MessageBox.Show("Answer=" + CStr(k))
    End Sub
End Class
     是不是可以从代码中的第3行最后,有一个“Handles button1.click”这就是事件处理函数的标志。

  事件处理函数有分为两种:一对多和多对一,很好理解的,多对一就是说:多个控制项可以使用同一个事件处理函数,举个例子:

    Private Sub TestA(sender As Object, e As EventArgs) Handles Button1.Click
        MessageBox.Show("TestA")
        RemoveHandler Button1.Click, AddressOf TestA
        RemoveHandler Button1.Click, AddressOf TestB

    End Sub
    Private Sub TestB(sender As Object, e As EventArgs) Handles Button1.Click
        MessageBox.Show("TestB")
        RemoveHandler Button1.Click, AddressOf TestB
        RemoveHandler Button1.Click, AddressOf TestA

    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
        AddHandler Button1.Click, AddressOf TestA
    End Sub
End Class

  这个代码说的主要问题就是,多对一事件处理函数中的一种:叫做动态的事件处理。这个RemoveHandler 和AddressOf就是建立的连接,程序运行的结果就是,但你点button1的时候,首先是messagebox出来:TestA,TestB,TestA,的结果,大家可以试一试。

  一对多就是:单一的控制项(控件)可以多个事件处理函数。会了上面的例子这个就很多理解了。

  第二部分就是:WinForm,主要讲了在窗体上vb.net和vb有什么区别,很好理解,看看思维导图就知道了。

  第三部分讲的是控件,这部分我自己理解也是一般般,通过一个text box控件来说明控制项可以与物件或资料库做系结的。