如何使用VB实例化UserControl?

时间:2016-06-06 07:32:31

标签: vb.net excel

所以在C#中声明并实例化一个UserControl,你会发现它类似于:

UserControl1 userCont = new UserControl1();
userCont.Show();

这将显示名为UserControl1的用户控件。

这是你在C#中的方式,现在你如何在VB中做到这一点?

因为我编写了一个Excel Add In,并且已将userControl放在功能区中,但它不想显示,并且该项目是在VB中,而不是C#。

编辑:

我项目的一些解释:

我有一个Excel 2013和2016 VSTO加载项项目类型。 我有3个班,即: UserControl1.vb - 作为我的userControl Ribbon.vb - 作为我的功能区类 ThisAddIn.vb - 作为课程中的添加

我的userControl非常简单,它有3个按钮,一个“是”按钮,一个“否”按钮和一个“添加表”按钮。它有1个listBox和12个复选框......

功能区也很简单,我在功能区中有两个按钮叫做“显示”和“循环”......

ThisAddIn类包含将使此添加工作的代码,例如方法和一般功能......

好的,这就是我的课程......

我的项目的目标是:

单击“显示”按钮时,右侧的Excel中将出现CustomTaskPane,此customTaskPane内部将是我的userControl ... (这有效) 非常感谢DrDonut的回答

单击“添加表”按钮(在userControl中)时,我希望excel遍历所有工作表,并将每个listObject的名称(表名称)添加到listBox。 (循环和添加表格按钮相同)

在C#中我知道你去了:

this.ListBox1.Items.Add("Item 1");

这将在列表框中添加一个项目,在VB中应用相同的原则,但是我的ListBox位于我的userControl中,它本身就位于CustomTaskPane中,似乎没有添加任何项目...... (将项目添加到列表框不起作用)

关于表的循环或检索它们的名称,这也不起作用......

(这是我真正想要的好事)

希望这个编辑能够澄清情况......

一些坚韧不拔的信息:

操作系统:Windows 10 Pro(x64)

RAM:32gb

CPU:i7-6700 @ 3.40ghz

Microsoft Visual Studio Community 2015

Microsoft Excel 2016(x64)

1 个答案:

答案 0 :(得分:2)

在vb.net中它非常相似,对于任务平台(办公室应用程序右侧的面板),它是:

Dim userControl as UserControl
Dim userTaskPane as Microsoft.office.tools.CustomTaskPane

userControl = new UserControl
userTaskPane = Me.CustomTaskPanes.Add(userControl, "Title")
userTaskPane.visible = true

现在它应该显示面板。

修改:来源:https://msdn.microsoft.com/en-us/library/aa942846.aspx

编辑2:您还需要设置正确的引用。假设您使用visual studio,请转到解决方案资源管理器 - >你的项目 - >引用。在我的项目中,这些包含以下内容:

  • 的Microsoft.Office.Interop.Excel
  • Microsoft.Office.Tools
  • Microsoft.Office.Tools.Common
  • Microsoft.Office.tools.Common.v4.0.Utilities
  • Microsoft.Office.Tools.Excel
  • Microsoft.Office.Tools.v4.0.Framework
  • Microsoft.VisualStudio.Tools.Applications.Runtime
  • 办公室

我不知道你是否需要所有这些,但肯定你需要其中的一些。