什么';t使用命令行参数自动化WinForms应用程序的最佳方式

本文关键字:WinForms 自动化 应用程序 方式 最佳 参数 命令行 什么 | 更新日期: 2023-09-27 18:26:56

我已经编写了一个小型WinForms工具,其中包含一些文本框、单选按钮、复选框和启动按钮。所以你输入你的输入,点击开始,就开始了。

现在,我想通过允许传递命令行参数来实现让用户进行一些批处理。

在过去,我会这样做:

  • 分析命令行参数并填充Windows.Onlad事件中的文本框、单选按钮和复选框
  • 启用Form.onLoad事件中的计时器,使其在100毫秒后启动
  • 当计时器触发时,禁用计时器并让它点击GUI的启动按钮

这很有效,但我想知道更优雅的方法。你将如何解决这个问题?

编辑:我想总是显示表单,因为它有一个带进度条的后台工作人员。

什么';t使用命令行参数自动化WinForms应用程序的最佳方式

听起来像是直接从表单读取处理的函数。让该函数接受所有数据作为参数,然后在提交表单时收集数据,然后将其传递给该函数,这样会更干净。

通过这种方式,您可以从程序的任何部分调用函数,例如在解析传递给程序的参数时。

不需要定时器,也不需要为批处理涉及UI。正如Treb所提到的,对于批处理,您可以选择从不显示表单(甚至根本不显示UI)

如果使用MVP和MVC等UI模式,则可以将批处理逻辑外部化为非基于UI的类。如果您将控制台想象为另一种UI类型,那么您可以在现有业务逻辑的基础上构建它。

为什么您的UI与业务混淆了?您应该有一个业务部分和一个UI部分。UI和CLI应该只是作为业务的接口。

这是最干净的方式。

关于你的进度条,想想一个系统,你可以从你的业务中读取一个以%为单位的值,它将指示完成工作的百分比。并非所有的都很难