.net - Iterop Forms Toolkit 验证和焦点事件

标签 .net vb6 winforms-interop

我有一个现有的 VB6 应用程序,我正在慢慢地将其代码移动到 DotNet,在很多情况下,这意味着必须使用 DotNet 用户控件并使用 Interop Forms Toolkit v2 将它们托管在 VB6 表单中。

目前的做法是用C#开发用户控件,然后有一个继承C#版本的VB.NET用户控件,并以VB6形式承载VB.NET控件。

我唯一遇到困难的部分是当下一个获得焦点的控件位于 Dotnet 用户控件之外时, try catch 文本框中的 Leave 或 Validated 事件。事件根本不会触发,或者我的处理程序不会运行。

有人解决了这个问题还是我遗漏了什么?

最佳答案

首先要注意的是,您绝对不必将 VB.NET 与 Interop Forms Toolkit 一起使用,您可以直接使用 C# 代码。

查看这两篇 CodeProject 文章:

在第二篇文章中,有一个名为 ActiveXControlHelpers 的类,如果您查看其中,您将看到如何连接 UserControl 以使事件在 VB 6.0 之间顺利地传输到 .NET。例如,如果您通过 Tab 键切换到 VB 6.0 中的 .NET 控件,那么您希望通过 Tab 键切换该控件的所有组件,而不是切换到 VB 6.0 世界中的下一个控件。

我非常确定,如果您看看如何完成此操作,您应该能够在解决问题上取得一些进展。

关于.net - Iterop Forms Toolkit 验证和焦点事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1485390/

相关文章:

c# - 加解密出错,找不到异常原因

c# - Microsoft Message Queue - 优先级标志或单独的队列?

c# - Linq:日期小于 x,但下一个记录日期大于 x

.net - 带有.NET库的VB6

c# - 如何在用户单击外部窗体时静音 "DING"声音?

c#从文本文件复制到word文档

c# - 如何以编程方式禁用网络摄像头二极管

.net - 控制台应用程序如何连接到 Azure SignalR 服务器以从我的 Web API 获取通知

listview - 获取listview点击列的列索引

vb.net - VB6 类型的等效项