您的位置:首页 > 数码常识数码常识

WinForm应用界面怎么开发(WinForm应用界面开发过程演示)

2025-05-11人已围观

WinForm应用界面怎么开发(WinForm应用界面开发过程演示)
  我们在采集特定数据的时候,往往需要耗费较长的时间,有时候因为一些事情,不可能长久的在电脑前等待结果,需要程序在一段时间后自动给我们发送邮件等通知,以及执行退出程序或者关机等处理善后工作,以节省资源或者电源,需要实现这个过程是如何的呢。本篇随笔基于这个采集程序的基础上增加这些功能的实现,介绍其中的一些处理技巧。

  WinForm应用界面开发过程演示

  DevExpress Universal Subscription官方最新版免费下载试用,历史版本下载,在线文档和帮助文件下载-慧都网

  一、邮件配置

  如果我们需要实现发送邮件、或者发送短信等通知途径,那么我们就需要把这些处理过程涉及到的参数提前录入到系统里面,是在不行硬编码也行,不过为了可扩展性,我倾向于使用配置界面进行参数的配置。

  在关于参数配置的处理,在博客《Winform开发框架之参数配置管理功能实现-基于SettingsProvider.net的构建》以及《Winform界面中实现菜单列表的动态个性化配置管理》都做了比较详细的介绍,基于SettingsProvider.net的封装处理,能够实现我们很方便的配置功能,可以配置在XML文件中,也可以保存在数据库中,根据需要处理。

  那么我这里为了采集发送数据的需要,也需要配置一个邮件的信息,如下界面所示。

  这个里面放置额外的两个功能按钮,一个是邮箱设置参考,一个是发送测试邮件,前者用来辅助填入一些参数,后者是验证用户账号是否收到测试邮件。

  发送测试邮件成功后,我们验证下是否收到,以便核对下提供的参数是否正确。

  二、设置定时处理

  完成上面的步骤后,我们基本上完成了一半的工作量了,剩下的就是在合适的时间,让系统发送通知给我们以及善后处理即可。

  那么我们如果定时的话,需要指定一个时间范围,使用DevExpress的TimeSpanEdit控件就合适不过了,我们只需要确定小时:分钟:秒的数据后,就可以根据这个时间范围确定我们执行任务的最终时间了。

  这个弹出的小窗体,我们只用来获取用户输入的时间范围即可,没有什么具体的逻辑。

  输入关机时间后,那么我们就可以根据关机时间,弹出一个倒计时的窗体,覆盖在主程序的界面上。

  最终我们到达时间的触发点后,实现发送邮件通知以及退出程序或者关机的处理。

  以上是整个处理的过程,那么实现的处理代码是如何的呢,我们来分析下具体的代码过程。

  上面主要的处理逻辑,放在了定时器的处理事件上

  这个触发的事件,是我们在主窗体定义的一个事件,目的就是用来实现倒计时及发送通知用的。

  然后我们在窗体里面初始化这个事件处理即可,初始化代码如下所示。

  最终的逻辑就是发送邮件和退出程序或者关机的处理:

  关机的操作,我们用来执行命令行的方式实现关机的处理,非常方便。

  关于这个Shutdown命令的处理,我下面列出它的一些功能说明。

  shutdown命令的参数:

  shutdown.exe -s:关机shutdown.exe -r:关机并重启shutdown.exe -l:注销当前用户

  shutdown.exe -s -t 时间:设置关机倒计时shutdown.exe -h:休眠shutdown.exe -t 时间:设置关机倒计时。默认值是 30 秒。shutdown.exe -a:取消关机shutdown.exe -f:强行关闭应用程序而没有警告shutdown.exe -m 计算机名:控制远程计算机shutdown.exe -i:显示“远程关机”图形用户界面,但必须是Shutdown的第一个参数shutdown.exe -c "消息内容":输入关机对话框中的消息内容shutdown.exe -d [u][p]:xx:yy :列出系统关闭的原因代码:u 是用户代码 ,p 是一个计划的关闭代码 ,xx 是一个主要原因代码(小于 256 的正整数) ,yy 是一个次要原因代码(小于 65536 的正整数)

  比如你的电脑要在12:00关机,可以选择“开始→运行”,输入“at 12:00 Shutdown -s",这样,到了12点电脑就会出现“系统关机”对话框,默认有30秒钟的倒计时并提示你保存工作。如果你想以倒计时的方式关机,可以输入 “Shutdown.exe -s -t 3600",这里表示60分钟后自动关机,“3600"代表60分钟。

  而发送邮件,我们一般利用一个邮件发送的封装类处理下即可。

  发送邮件的时候,我们先获取用户的邮件配置信息,然后调用邮件发送辅助类实现内容的发送处理,具体代码如下所示。

  以上就是整个处理的过程,其中还涉及到了在线程间访问控件的方式,如下代码所示。

  这个详细的介绍可以参考我较早期的随笔《浅谈多线程中数据的绑定和赋值》,这些细节都需要我们一步步测试并寻找最佳的方案实现,希望这个随笔的思路给你有一定的启发。

  当然,如果系统做的比较大一些,系统化一些的话,还可以考虑利用EasyNetQ的这种方式实现信息的通知。

  这种通知可以更好的扩展,详细介绍可以参考下随笔《使用EasyNetQ组件操作RabbitMQ消息队列服务》,不过一般小程序的就不用那么麻烦了,用一个定时器来处理下就可以了。

  DevExpress

  DevExpress Universal 10月正式发布今年第二个重大版本——v21.2,此版本正式官宣支持Visual Studio 2022 & .NET6,同时与微软最新发布的Windows 11完美兼容,全面解决用户各种使用场景问题。 与时俱进,从未止步!

  上面就是小居数码小编今天给大家介绍的关于(WinForm应用界面开发过程演示)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。

  94%的朋友还想知道的:

  修改pdf里面的文字内容步骤演示(如何修改pdf的文字)

  在word文档内添加超链接步骤演示(怎样为文本添加超链接)

  2种方法演示(Excel中方框打勾怎么输入)

  白底图快速抠图步骤演示(白底图抠图技巧)



  152309
 

很赞哦! ()

随机图文