【问题标题】:Authoring custom controls in COM for Access 2003在 COM 中为 Access 2003 创作自定义控件
【发布时间】:2009-05-13 15:48:38
【问题描述】:

问题的简短版本:

如何在不借助 VB6 的情况下为 MS Access 2003 编写自定义控件?

加长版:

在过去的 6 年里,我一直沉浸在编写 C# WinForms 应用程序的乐趣中,现在我必须修改一个 Access 2003 应用程序。是的,它最终将被重写为一个 Dot Net 应用程序,但目前,它必须保持为 Access 2003 应用程序。

所以我喜欢编写 WinForms 应用程序的一件事是,我可以获取任何 WinForms UI 对象,比如一个组合框,然后将它变成一个自定义控件,我可以向其中添加功能。我还可以采用多个控件,将它们作为自定义控件组合到一个设计图面上,然后让它作为自定义控件出现在我的 VS.Net 工具箱中。 (当您需要反复使用一组复杂的数据收集控件时非常方便)。

所以现在我在我的一个项目中使用 Access 2003,我希望能够为它创建自定义控件。 Access 2003 3rd 方控件使用 COM。问题是,我曾经在其中创建自定义 COM UI 控件的唯一环境是 VB 6。现在,我还有 VB6,但由于 VB6 已经 10 多年了,我觉得有义务寻找其他选项。

我很确定还有人在编写 COM UI 控件,那么如果不是 VB6,你们还在使用什么?

【问题讨论】:

    标签: ms-access com user-controls custom-controls


    【解决方案1】:

    我怀疑您是否会在特定于 Access 方面获得很多帮助,因为大多数 Access 开发人员不需要或不希望您所要求的。事实上,我所熟悉的大多数专业人士都避免在 Access 中使用所有类型的非本地控件,这仅仅是因为在 Access 应用程序中使用它们会带来很多问题。 Access 在许多方面实际上是一种非常特殊的动物,因此创建可在 Access 中工作的控件比创建可在 VB 应用程序中工作的控件更难。我不知道这一点,我的猜测是其中一个原因是 Access 表单上的各个控件只有在获得焦点时才有窗口句柄。这样做的原因很清楚:在设计 Access 时,系统资源是有限的,您不希望为窗体上的每个控件分配窗口句柄(可能是 100 多个)。现在这可能不是问题,但 Access 中的设计保持不变。有一些解决方法,但根据我的观察,它们并不漂亮。

    【讨论】:

    • FMS Inc. 自 Access 2.0 以来一直在为 MS Access 开发自定义控件。 fmsinc.com/MicrosoftAccess/controls/new-features.asp所以我知道有办法做到这一点并且做得很好。
    • 嗯,当然——我没有说这不可能,只是它比你想象的要难。 FMS 专注于 Access 产品,因此他们拥有足够的专业知识来了解如何处理构建 Access 控件所带来的问题也就不足为奇了。但他们是为数不多的此类组织之一,鉴于 Access 的使用范围如此广泛,这向我表明,这可能比大多数人想要尝试的任务更艰巨(至少,那些使用 Access 的人)。
    • +1 虽然我认为 Access 人可能不想要它们,因为他们不容易拥有它们。 Access 中的约定表单与其他应用程序中的表单不同:我没有过多地使用它们,但从我的角度来看,它们似乎更像是一个报告作者。我想很聪明,但它们不适合可扩展。
    • 您可能会对它们的实际可扩展性感到惊讶。您可能想浏览 Stephen Leban 的代码示例,以一些惊人的方式使用 Access 进行一些非常聪明的编码:lebans.com/products.htm
    • 嗯,当然——我并没有说这不可能,只是它比某些人可能怀疑的要难:)
    猜你喜欢
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多