用途:该技能面向 VB.NET 的 Windows Forms 开发,提供现代 WinForms 开发中正确使用 UI 线程、数据绑定和事件处理的模式与范式。
主要能力: 一、UI 线程处理。展示 Invoke 与 BeginInvoke 的用法差异,如何在后台线程安全更新 UI,以及 Async/Await 模式(如 Await Task.Run(...) 后回到 UI 线程更新控件)。给出 BackgroundWorker 完整流程:WorkerReportsProgress 与 WorkerSupportsCancellation 设置、RunWorkerAsync、DoWork 中检查 CancellationPending 并 ReportProgress、ProgressChanged 更新进度条、RunWorkerCompleted 处理取消、错误与完成三种情况。 二、数据绑定。介绍 BindingSource 模式:将集合赋给 DataSource,绑定到 DataGridView 与 TextBox(DataBindings.Add),配合 BindingNavigator 导航,使用 Filter 与 RemoveFilter 实现搜索过滤。还给出实现 INotifyPropertyChanged 的对象绑定写法,属性 Set 中比较新旧值并触发 OnPropertyChanged。 三、事件处理与校验。标准 Click 与 TextChanged 事件,单个处理器用 Handles 绑定多个控件,自定义 EventArgs 与自定义事件。表单校验使用 ErrorProvider 的 SetError 与 Clear,并在 Validating 事件中实时校验,通过 e.Cancel 阻止无效输入。 四、对话框模式。自定义对话框继承 Form,设置 DialogResult 并 Close,使用方通过 ShowDialog() 判断 DialogResult.OK 后读取属性,并用 Using 确保释放。
必要用法:技能中用 Loading 事件或 Form_Load 中 Await 异步加载数据;在 FormClosing 中释放连接与定时器等资源;使用 Using 创建和显示对话框以避免内存泄漏。
适用场景:需要维护或开发 VB.NET Windows Forms 桌面应用,尤其是涉及异步数据加载、控件绑定、输入校验和模态对话框的项目。
限制与注意事项:资料明确反对在 UI 线程上阻塞(如 .Result 同步等待)、在后台线程直接操作控件、忘记释放窗体以及使用 Application.DoEvents,并指出这些做法带来的跨线程异常与内存泄漏风险。相关技能包括 vb-core、vb-database 与 test-driven-development。未提供安装命令、版本要求、支持的框架版本以及收费等信息。