【发布时间】:2016-11-23 23:13:14
【问题描述】:
我在 C# 中有一个简单的“登录”屏幕,用户将在其中按下登录,然后弹出另一个窗口说欢迎,当我在 Visual Studio 上构建/运行时它正在工作。
这里是代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Login_Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Welcome");
this.Close();
}
}
}
我还有一个 VBA 表单 (Access 2010),用户将在其中单击一个按钮,然后应该弹出 C# 表单,并且在将来,它不会说“欢迎”,而是重定向到 Access 中的不同表单。
这是 VBA 按钮的代码:
Private Sub Command284_Click()
Dim objLog As Login_Test.Form1
Set objLog = New Login_Test.Form1
End Sub
我已经制作了 .dll、.tlb,在上面使用了 regasm,并在 Access 上引用了它。
按下按钮时,我得到:“运行时错误 429 activex 组件无法创建对象”。
我错过了什么吗?
【问题讨论】:
-
是
ComVisible吗? -
@cyboashu 我应该把那行放在哪里( [ComVisibleAttribute(true)] )?
-
在 dll 的入口点(dll 的主/根类)之前看到这个:stackoverflow.com/questions/7092553/…
-
@cyboashu ,是的,我启用了“使程序集 COM-Visible”
-
您注册时使用的 regasm 语法是什么?