我正在创建一个ActiveX控件。我在用户控件中创建了一堆属性,现在我想在同一个项目中访问其他模块,类,表单等中的属性,但我似乎无法找到正确的语法来执行此操作? / p>
我试过的Syntaxt:
connectString = user_control_name.DBConnectionString
connectString = Property("DBConnectionString")
connectString = Property(DBConnectionString)
connectString = Property Get ("DBConnectionString")
答案 0 :(得分:1)
如果要访问特定表单上UserControl实例的属性,可以执行以下操作:
my_form_reference.my_usercontrol_name.my_property = <whatever>
如果要访问UserControl中UserControl的实例,则必须通过包含UserControl的属性将引用传递给UserControl。
我通常建议您不要传递UserControl引用。通常最好包装这些控件,而不是破坏抽象。
如果要从ActiveX控件项目内部访问UserControl实例上的属性,我建议不要使用它。您可以这样做的唯一方法是在BAS
模块中使用模块级变量。可以从项目中的每个模块访问此变量。您必须在控件的UserControl_Initialize事件中设置变量。但是,我强烈建议你不要这样做,因为这会为你的UserControl创建一个额外的引用,它应该只包含来自包含Form或UserControl的引用。这个额外的引用意味着如果卸载了包含Form或UserControl,控件将在应用程序的生命周期内留在内存中,从而导致内存泄漏。通过使用&#34;弱引用&#34;可以解决这个问题。但这在VB6中不受支持,需要API黑客攻击,并且容易导致崩溃。
我认真地建议你找到其他方法来做你想做的事。也许你可以准确地解释为什么你有这个要求。