热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

.NET新一代的Windows应用程式

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

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

 bubuko.com,布布扣

  大家可以从上图中很清楚的看的出来,就是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控件来说明控制项可以与物件或资料库做系结的。

.NET--新一代的Windows应用程式,布布扣,bubuko.com


推荐阅读
  • Spark中使用map或flatMap将DataSet[A]转换为DataSet[B]时Schema变为Binary的问题及解决方案
    本文探讨了在使用Spark的map或flatMap算子将一个数据集转换为另一个数据集时,遇到的Schema变为Binary的问题,并提供了详细的解决方案。 ... [详细]
  • [c++基础]STL
    cppfig15_10.cppincludeincludeusingnamespacestd;templatevoidprintVector(constvector&integer ... [详细]
  • 自动验证时页面显示问题的解决方法
    在使用自动验证功能时,页面未能正确显示错误信息。通过使用 `dump($info->getError())` 可以帮助诊断和解决问题。 ... [详细]
  • Framework7:构建跨平台移动应用的高效框架
    Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ... [详细]
  • 本文介绍了如何使用 CMD 批处理脚本进行文件操作,包括将指定目录下的 PHP 文件重命名为 HTML 文件,并将这些文件复制到另一个目录。 ... [详细]
  • 本文详细介绍了DMA控制器如何通过映射表处理来自外设的请求,包括映射表的设计和实现方法。 ... [详细]
  • 在使用Eclipse进行调试时,如果遇到未解析的断点(unresolved breakpoint)并显示“未加载符号表,请使用‘file’命令加载目标文件以进行调试”的错误提示,这通常是因为调试器未能正确加载符号表。解决此问题的方法是通过GDB的`file`命令手动加载目标文件,以便调试器能够识别和解析断点。具体操作为在GDB命令行中输入 `(gdb) file `。这一步骤确保了调试环境能够正确访问和解析程序中的符号信息,从而实现有效的调试。 ... [详细]
  • MySQL的查询执行流程涉及多个关键组件,包括连接器、查询缓存、分析器和优化器。在服务层,连接器负责建立与客户端的连接,查询缓存用于存储和检索常用查询结果,以提高性能。分析器则解析SQL语句,生成语法树,而优化器负责选择最优的查询执行计划。这一流程确保了MySQL能够高效地处理各种复杂的查询请求。 ... [详细]
  • ZooKeeper 入门指南
    本文将详细介绍ZooKeeper的工作机制、特点、数据结构以及常见的应用场景,包括统一命名服务、统一配置管理、统一集群管理、服务器动态上下线和软负载均衡。 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • 数字资产量化交易通过大数据分析,以客观的方式制定交易决策,有效减少人为的主观判断和情绪影响。本文介绍了几种常见的数字资产量化交易策略,包括搬砖套利和趋势交易,并探讨了量化交易软件的开发前景。 ... [详细]
  • 自定义滚动条美化页面内容
    当页面内容超出显示范围时,为了提升用户体验和页面美观,通常会添加滚动条。如果默认的浏览器滚动条无法满足设计需求,我们可以自定义一个符合要求的滚动条。本文将详细介绍自定义滚动条的实现过程。 ... [详细]
  • importpymysql#一、直接连接mysql数据库'''coonpymysql.connect(host'192.168.*.*',u ... [详细]
  • 两个条件,组合控制#if($query_string~*modviewthread&t(&extra(.*)))?$)#{#set$itid$1;#rewrite^ ... [详细]
  • 装饰者模式(Decorator):一种灵活的对象结构设计模式
    装饰者模式(Decorator)是一种灵活的对象结构设计模式,旨在为单个对象动态地添加功能,而无需修改原有类的结构。通过封装对象并提供额外的行为,装饰者模式比传统的继承方式更加灵活和可扩展。例如,可以在运行时为特定对象添加边框或滚动条等特性,而不会影响其他对象。这种模式特别适用于需要在不同情况下动态组合功能的场景。 ... [详细]
author-avatar
Alistar1991_281
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有