所以在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)
答案 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,请转到解决方案资源管理器 - >你的项目 - >引用。在我的项目中,这些包含以下内容:
我不知道你是否需要所有这些,但肯定你需要其中的一些。